1. ホーム
  2. bash

[解決済み] Bash Script : #!/bin/bash の意味は何ですか?重複

2022-05-14 01:37:59

質問

bashスクリプトでは #!/bin/bash は何を意味するのでしょうか?

アップデイト : の違いは何ですか? #!/bin/bash#!/bin/sh ?

どのように解決するのですか?

というのは シバング と呼ばれ、実行されたときにどのプログラムでスクリプトを解釈するかをシェルに伝えます。

この例では、スクリプトを解釈して実行するのは バッシュ シェルで実行されます。

他のいくつかの例のシェバングを紹介します。

(ウィキペディアより)

#!/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 )