Bash 스크립트의 소스 코드와 그 내용("소스"라고도 함)을 보거나 표시/인쇄할 수 있는 방법이 있습니까?
예를 들어:
sub.sh 파일
function showMe(){
echo "INCLUDE"
}
main.sh 파일
#!/bin/bash
source sub.sh
showMe
echo "OK"
main.sh의 "인쇄"에는 다음이 표시됩니다.
#!/bin/bash
showMe(){
echo "INCLUDE"
}
showMe
echo "OK"
답변1
다음을 시도해 볼 수 있습니다 awk
.
awk '/^source/ { while (getline l <$2 > 0) print l; close($2); next; } { print; }' main.sh
따라서 로 시작하는 모든 줄은 source fname
파일 내용이 있는 경우 해당 내용으로 대체되어야 합니다.
답변2
perl -p0e 'while(s/source\s+(\S+)/`cat $1`/e){}' foo.sh
답변3
스크립트 실행도 괜찮다면 소스 코드와 그 내용을 표시하는 간단한 방법은 다음과 같습니다.
bash -v foo.sh
답변4
자신의 소스 코드를 출력하는 프로그램을 호출합니다.퀸. 많은 것들이 있지만 실제로 개발하는 것은 놀라울 정도로 직관적이지 않습니다. 대부분의 온라인 예제에는 아무것도 포함되어 있지 않습니다. 간단한 bash 버전을 찾을 수 있습니다여기:
#!/bin/bash
q=(
'#!/bin/bash'
'q=('
')'
'printf "%s\n" "${q[@]:0:2}"'
'printf "\047%s\047\n" "${q[@]}"'
'printf "%s\n" "${q[@]:2}"'
)
printf "%s\n" "${q[@]:0:2}"
printf "\047%s\047\n" "${q[@]}"
printf "%s\n" "${q[@]:2}"
Quinine은 거의 모든 프로그래밍 언어에서 발견됩니다. 퀴인 체인(원본 코드를 출력하는 다른 언어로 소스 코드를 출력)도 있습니다.이 퀸128개 언어로 구성된 긴 체인입니다.