IT story

Bash 스크립트 : #! / bin / bash는 무엇을 의미합니까?

hot-time 2020. 9. 3. 23:43
반응형

Bash 스크립트 : #! / bin / bash는 무엇을 의미합니까? [복제]


bash 스크립트 #!/bin/bash에서 첫 번째 줄은 무엇을 의미합니까?

UPDATE : 사이에 차이가 #!/bin/bash#!/bin/sh?


이를 shebang 이라고하며 실행시 스크립트를 해석 할 프로그램을 쉘에 알려줍니다.

귀하의 예에서 스크립트는 bash에서 해석되고 실행됩니다 .

다른 예를 들면 다음과 같습니다.

(위키 백과에서)

#!/bin/sh — Execute the file using sh, the Bourne shell, or a compatible shell
#!/bin/csh — Execute the file using csh, the C shell, or a compatible shell
#!/usr/bin/perl -T — Execute using Perl with the option for taint checks
#!/usr/bin/php — Execute the file using the PHP command line interpreter
#!/usr/bin/python -O — Execute using Python with optimizations to code
#!/usr/bin/ruby — Execute using Ruby

그리고 다음과 같은 몇 가지 추가 사항이 있습니다.

#!/bin/ksh
#!/bin/awk
#!/bin/expect

예를 들어, bash shebang이있는 스크립트에서 bash 구문으로 코드를 작성합니다. expect shebang이있는 스크립트에서는 expect 구문으로 코딩하는 식입니다.

업데이트 된 부분에 대한 응답 :

/bin/sh시스템에서 실제로 가리키는 내용에 따라 다릅니다 . 종종 /bin/bash. 때로는 휴대용 스크립트를 작성하는 #!/bin/sh것이 쉘 스크립트의 한 것을 나타냅니다 만, 그러나에 의해 참조 중 쉘 사용하여 /bin/sh해당 시스템에 (어쩌면 가리키는 /bin/bash, /bin/ksh또는 /bin/zsh)


bash 스크립트에서 첫 번째 줄의 #! / bin / bash는 무엇을 의미합니까?

Linux 시스템에는 UNIX 명령을 해석하는 쉘이 있습니다. 이제 Unix 시스템에는 많은 쉘이 있습니다. 그중에는 매우 일반적인 Linux이며 오랜 역사를 가지고있는 bash라는 쉘이 있습니다. 이것은 Linux의 기본 쉘입니다.

스크립트 (유닉스 명령 모음 등)를 작성할 때 사용할 수있는 셸을 지정하는 옵션이 있습니다. 일반적으로 Shebang 을 사용하여 어떤 쉘인지 지정할 수 있습니다 (예, 이름입니다).

따라서 스크립트 상단에서 #! / bin / bash를 사용하면 시스템에 bash를 기본 쉘로 사용하도록 지시하는 것입니다.

이제 두 번째 질문이 있습니다. #! / bin / bash와 #! / bin / sh 사이에 차이점이 있습니까?

대답은 예입니다. #! / bin / bash라고 말하면 환경 / os에 명령 인터프리터로 bash를 사용하도록 지시하는 것입니다. 이것은 하드 코딩 된 것입니다.

모든 시스템에는 시스템이 자체 시스템 스크립트를 실행하는 데 사용할 자체 쉘이 있습니다. 이 시스템 셸은 OS마다 다를 수 있습니다 (대부분 bash입니다. Ubuntu는 최근 기본 시스템 셸로 dash사용함 ). #! / bin / sh를 지정하면 시스템은 내부 시스템 쉘을 사용하여 쉘 스크립트를 해석합니다.

이 주제를 설명한 추가 정보를 보려면링크방문하십시오 .

이것이 당신의 혼란을 없애기를 바랍니다. 행운을 빕니다.


스크립트의 첫 번째 문자 #!가 다음과 같을 때이를 shebang 이라고합니다 . 파일이 #!/path/to/something표준으로 시작 something하면 파일의 나머지 부분을 해당 프로그램에 입력으로 전달하는 것입니다.

그렇게 말한다면, 차이 사이 #!/bin/bash, #!/bin/sh또는 심지어 #!/bin/zsh배쉬, 쉬, 또는 zsh을 프로그램이 파일의 나머지 부분을 해석하는 데 사용 여부입니다. bash그리고 sh단지 다른 프로그램은 전통적이다. 일부 Linux 시스템에서는 동일한 프로그램의 두 사본입니다. 다른 Linux 시스템에서는 sh에 대한 링크 dash이며 기존 Unix 시스템 (Solaris, Irix 등) bash에서는 일반적으로 sh.

물론 나머지 줄은 sh로 끝날 필요는 없습니다. 그것은 단지뿐만 아니라 수 #!/usr/bin/python, #!/usr/bin/perl또는도 #!/usr/local/bin/my_own_scripting_language.

참고 URL : https://stackoverflow.com/questions/13872048/bash-script-what-does-bin-bash-mean

반응형