Bash 스크립트의 소스 코드와 그 내용을 인쇄합니다.

Bash 스크립트의 소스 코드와 그 내용을 인쇄합니다.

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개 언어로 구성된 긴 체인입니다.

관련 정보