[解決済み] 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
)
関連
-
[解決済み] cshスクリプトをbashでソースして環境を設定する方法 [終了しました]。
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] bashスクリプトでset -eはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bashのシンタックスエラー:予期しないファイルの終わり
-
[解決済み] echoコマンドでパイピングが効かない [重複]。
-
[解決済み] docker alpine /bin/sh script.sh not found
-
[解決済み] あいまいなリダイレクト」エラーが発生する
-
[解決済み] awkシステムコール
-
[解決済み] nohupプロセスを終了させる方法を教えてください。
-
[解決済み] bashでのDiffコマンド
-
[解決済み] Bashのforeachループ
-
[解決済み] Bashスクリプトの'''抜け'''がある] [クローズド]
-
[解決済み] なぜ、スクリプトファイルの先頭に#!/bin/bashを付ける必要があるのですか?