programing

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

closeapi 2023. 6. 30. 22:22
반응형

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

bash 스크립트의 기능#!/bin/bash첫 번째 줄의 평균은?

업데이트: 사이에 차이가 있습니까?#!/bin/bash그리고.#!/bin/sh?

그것은 셰방이라고 불리는데, 실행될 때 어떤 프로그램으로 스크립트를 해석해야 하는지를 셸에 알려줍니다.

이 예제에서는 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는 무엇을 의미합니까?

리눅스 시스템에는 유닉스 명령을 해석하는 셸이 있습니다.이제 유닉스 시스템에는 많은 셸이 있습니다.그중에서도 bash라는 셸이 있는데 매우 흔한 리눅스이고 오랜 역사를 가지고 있습니다.이것은 Linux의 기본 셸입니다.

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

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

이제 두 번째 질문으로 넘어갑니다. #!/bin/bash와 #!/bin/sh 사이에 차이가 있습니까?

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

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

이 항목에 대해 설명한 자세한 내용은 이 링크를 참조하십시오.

이것이 당신의 혼란을 없애주기를 바랍니다.행운을 빌어요.

의 첫 가 스크립트의첫번문다자음같경은우과가째▁the경우같ers인 경우#!그것은 셰방이라고 불립니다.파일이 다음으로 시작하는 경우#!/path/to/something표준은 실행하는 것입니다.something나머지 파일을 해당 프로그램에 입력으로 전달합니다.

긴하지만사, 차은점이의의 는?#!/bin/bash,#!/bin/sh아니 심지어는#!/bin/zsh파일의 나머지 부분을 해석하는 데 bash, sh 또는 zsh 프로그램이 사용되는지 여부입니다. bash그리고.sh전통적으로 다른 프로그램일 뿐입니다.일부 Linux 시스템에서는 동일한 프로그램의 두 복사본입니다.시스템에서는 과 같이 사용할 수 있습니다.sh에 대한 링크입니다.dash유닉스 Irix 등에서는 유닉스 시스템(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

반응형