Bash here - 문서 및 shebang 라인

Bash here - 문서 및 shebang 라인

bash << HEREDOCbash here-doc 등을 사용할 때 예외 없이 shebang 라인 등이 #!/bin/bash -x중복된다는 결론을 내릴 수 있습니까 ?

장담해야 한다면, 중복될 것이며 새로운 사용자에게 "다음 명령 세트는 원래 기존 스크립트에서 실행되었으므로 사용하지 마십시오"라고 말하는 표시와 같이 정보를 구성하는 데만 사용할 수 있을 것입니다. 이중 앰퍼샌드 또는 이와 유사한 것을 한 줄로 실행합니다."

전문가들이 뭐라고 말하는지 궁금합니다. 여기서 문서를 사용할 때 bash shebang 라인이 실제로 완전히 중복됩니까?

답변1

예, 이 경우에는 그렇습니다.

요약: 해시뱅 라인("shebang" 등이라고도 함)이 인터프리터를 명시적으로 지정하지 않고 실행되는 실행 가능 스크립트에 있는 경우에만 필요합니다(바이너리 실행 파일을 실행할 때와 마찬가지로).

코드의 경우 여기 문서에 있는 스크립트를 명시적으로 실행했습니다 bash. 댓글로 처리되므로 해시뱅을 추가할 필요가 없습니다.

여기 문서 스크립트는 관점하려는 것 같습니다-x옵션 세트로 실행#!/bin/bash -xset -x

hash-bang 라인은 실행 가능한 텍스트 파일을 실행할 때 사용됩니다. 이 줄은 시스템을 실행하는 데 사용할 인터프리터를 알려주고 선택적으로 해당 인터프리터에 대한 인수를 지정할 수 있습니다( -x귀하의 경우).

하다나중에 스크립트로 사용될 파일에 이 문서를 작성하는 경우 거기에 해시뱅이 필요합니다. 예를 들어:

cat >myscript.sh <<<END_OF_SCRIPT
#!/bin/bash
# contents of script
# goes here
END_OF_SCRIPT

이러한 파일은 실행 가능해야 합니다( chmod +x myscript.sh). 그러나 다시 말하지만, bash예를 들어 다음을 통해 명시적으로 스크립트를 실행하는 경우입니다.

$ bash ./myscript.sh

또는

$ bash -x ./myscript.sh

(또는 다른 스크립트에서도 동일하게) 해시뱅이 필요하지 않으며 스크립트가 실행 가능하지 않아도 됩니다.

그것은 모두 스크립트 실행 방법에 따라 다릅니다.

Wikipedia 항목도 참조하세요.셰르본.

관련 정보