bash << HEREDOC
bash here-doc 등을 사용할 때 예외 없이 shebang 라인 등이 #!/bin/bash -x
중복된다는 결론을 내릴 수 있습니까 ?
장담해야 한다면, 중복될 것이며 새로운 사용자에게 "다음 명령 세트는 원래 기존 스크립트에서 실행되었으므로 사용하지 마십시오"라고 말하는 표시와 같이 정보를 구성하는 데만 사용할 수 있을 것입니다. 이중 앰퍼샌드 또는 이와 유사한 것을 한 줄로 실행합니다."
전문가들이 뭐라고 말하는지 궁금합니다. 여기서 문서를 사용할 때 bash shebang 라인이 실제로 완전히 중복됩니까?
답변1
예, 이 경우에는 그렇습니다.
요약: 해시뱅 라인("shebang" 등이라고도 함)이 인터프리터를 명시적으로 지정하지 않고 실행되는 실행 가능 스크립트에 있는 경우에만 필요합니다(바이너리 실행 파일을 실행할 때와 마찬가지로).
코드의 경우 여기 문서에 있는 스크립트를 명시적으로 실행했습니다 bash
. 댓글로 처리되므로 해시뱅을 추가할 필요가 없습니다.
여기 문서 스크립트는 관점하려는 것 같습니다-x
옵션 세트로 실행#!/bin/bash -x
set -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 항목도 참조하세요.셰르본.