(바라보다Ubuntu-OSX 호환성, 사용 편의성 및 POSIX를 위해 #!/bin/sh 또는 #!/bin/bash를 사용하세요.)
내 스크립트가 Bash 쉘을 사용하도록 하려면 .bash
확장 기능을 사용하여 실제로 Bash를 호출합니까, 아니면 시스템 구성이나 첫 번째 shebang 라인에 의존합니까? 둘 다 유효하지만 서로 다른 경우 어느 것이 우선합니까?
.sh
"shell script"만 표시하고 첫 번째 줄에서 Bash 셸(예: #!/usr/bin/env bash
)을 선택하여 스크립트를 종료해야 하는지, 아니면 .bash
첫 번째 줄의 설정과 함께 스크립트를 종료 해야 하는지 잘 모르겠습니다. ).
Bash를 호출하고 싶습니다.
답변1
.bash 확장자를 사용하는 것이 실제로 bash를 호출하는지 여부는 시스템 구성/첫 번째 shebang 라인에 따라 다릅니다.
인터프리터를 명시적으로 사용하지 않는 경우 호출되는 인터프리터는 다음과 같습니다."쉐본"스크립트에 사용됩니다( #!
-line, 스크립트 파일의 첫 번째 줄이어야 함).
반면에 인터프리터를 명시적으로 사용하는 경우 인터프리터는 스크립트에 어떤 확장을 제공하는지 상관하지 않습니다. 그러나 확장 기능은 그것이 어떤 유형의 스크립트인지 다른 사람들에게 매우 명확하게 보여주기 위해 존재합니다.
[sreeraj@server ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a Bash script"
.py
Bash 스크립트를 확장한다고 해서 Python 스크립트가 되는 것은 아닙니다.
[sreeraj@server ~]$ python ./ext.py
File "./ext.py", line 2
echo "Hi. I am a Bash script"
^
SyntaxError: invalid syntax
항상 Bash 스크립트입니다.
[sreeraj@server ~]$ ./ext.py
Hi. I am a Bash script
답변2
스크립트 이름은 실행 방법과 관련이 없습니다.
shebang 라인은 스크립트를 실행하는 데 사용되는 인터프리터를 정의합니다.
나는 개인적으로 스크립트가 sh, bash, perl 등인지 상관하지 않으므로 스크립트의 기능에 따라 이름을 지정했습니다. 알고 싶으면 file scriptname
파일이 무엇인지 알아 보겠습니다.
따라서 스크립트를 실행하려면 첫 번째 줄로 bash
사용하십시오 .#!/bin/bash