포함 된 bash 스크립트의 소스 코드를 보거나 표시 / 인쇄하는 방법이 있습니까 (일명 “sources “)?
예 :
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"
댓글
답변
다음을 시도해 볼 수 있습니다. awk
:
awk "/^source/ { while (getline l <$2 > 0) print l; close($2); next; } { print; }" main.sh
따라서 source fname
로 시작하는 각 줄은 파일이있는 경우
답변
perl -p0e "while(s/source\s+(\S+)/`cat $1`/e){}" foo.sh
댓글
- 잘 작동합니다 ..하지만 ' 펄을 사용할 수 없습니다. 감사합니다.
- put
echo "source foo.sh for the rescue"
foo.sh
에서 무한 루프가 발생합니다.) - @EvgenyVereshchagin, 당신은 매우 잔인합니다! 🙂
답변
스크립트를 실행해도 괜찮다면 다음과 같은 간단한 방법이 있습니다. 소스 코드 및 포함 내용이 표시되도록합니다.
bash -v foo.sh
주석
- 이 명령은 원본 만 있으면됩니다. 감사합니다.
more/less/cat
로 볼 수 있으며, 런타임에 -x 플래그를 사용할 수 있습니다 (예 :set -x
). 인쇄 소스 코드와 포함 된 파일을 정적으로 인쇄하는 마법은 없습니다. C 언어의 경우cpp
에 해당하지 않습니다.