釈伴:LinuxのShebang記号(#!)
1093 ワード
Linuxまたはunixシステムを使用する学生はすべて#に対してかもしれません!この記号はよく知られていませんが、あなたは本当にそれを知っていますか?
ここでは、Shebang("#!")という記号を簡単に紹介します.
まず、この記号(#!)「Shebang」または「Sha-bang」という名前です(他にもいくつかの名前がありますが、私は一般的にこの2つを使っています).
Shebangという記号は、通常、Unixシステムのスクリプトの最初の行の先頭に書かれており、このスクリプトファイルを実行する解釈プログラムを示しています.1.スクリプトファイルに#がない場合!この行は、実行時にデフォルトで現在のShellで説明されます($SHELL環境変数).
2.もし#なら!その後の解釈プログラムは実行可能ファイルであり、このスクリプトを実行すると、ファイル名とそのパラメータをパラメータとしてその解釈プログラムに渡して実行されます.
3.もし#なら!指定した解釈プログラムに実行権限がない場合は、「bad interpreter:Permission denied」とエラーが表示されます.もし#なら!指定した解釈プログラムが実行可能ファイルではない場合、指定した解釈プログラムは無視され、現在のSHELLに渡してこのスクリプトを実行します.
4.もし#なら!指定した解釈プログラムが存在しない場合は、「bad interpreter:No such file or directory」とエラーが表示されます.注意:#!その後の解釈プログラムでは、$PATHに自動的に解釈器を探すことはありません(#!/bin/bashなど)絶対パスを書く必要があります.
5.もちろん、もしあなたが「bash test」を使うなら.sh」というコマンドでスクリプトを実行すると、#!この行は無視されます.解釈器はもちろんコマンドラインで明示的に指定されたbashです.
例:test.sh
chmod a+x test.sh
./test.sh Jay(実行時、実は/bin/bash./test.sh Jay)
結果:
hello, world.hello, Jay.
ここでは、Shebang("#!")という記号を簡単に紹介します.
まず、この記号(#!)「Shebang」または「Sha-bang」という名前です(他にもいくつかの名前がありますが、私は一般的にこの2つを使っています).
Shebangという記号は、通常、Unixシステムのスクリプトの最初の行の先頭に書かれており、このスクリプトファイルを実行する解釈プログラムを示しています.1.スクリプトファイルに#がない場合!この行は、実行時にデフォルトで現在のShellで説明されます($SHELL環境変数).
2.もし#なら!その後の解釈プログラムは実行可能ファイルであり、このスクリプトを実行すると、ファイル名とそのパラメータをパラメータとしてその解釈プログラムに渡して実行されます.
3.もし#なら!指定した解釈プログラムに実行権限がない場合は、「bad interpreter:Permission denied」とエラーが表示されます.もし#なら!指定した解釈プログラムが実行可能ファイルではない場合、指定した解釈プログラムは無視され、現在のSHELLに渡してこのスクリプトを実行します.
4.もし#なら!指定した解釈プログラムが存在しない場合は、「bad interpreter:No such file or directory」とエラーが表示されます.注意:#!その後の解釈プログラムでは、$PATHに自動的に解釈器を探すことはありません(#!/bin/bashなど)絶対パスを書く必要があります.
5.もちろん、もしあなたが「bash test」を使うなら.sh」というコマンドでスクリプトを実行すると、#!この行は無視されます.解釈器はもちろんコマンドラインで明示的に指定されたbashです.
例:test.sh
#!/bin/bash
echo "hello, world."
echo "hello, ${1}."
chmod a+x test.sh
./test.sh Jay(実行時、実は/bin/bash./test.sh Jay)
結果:
hello, world.hello, Jay.