sh・csh・perl・rubyなどで作成したスクリプトの先頭行には、
#!/bin/sh
#!/usr/bin/perl
などと記述する。
初心者の内はおまじない!と習っていることでしょう。
この「#!」がファイル先頭2バイトにあると、UNIXはその後に続くコマンドを実行します。
例えば、
ファイル名:test.pl
ファイルの先頭行:#!/usr/bin/perl
というスクリプトがある場合、
>./test.pl
と実行すると、UNIXカーネルは「#!」に続く/usr/bin/perlを実行し、その引数としてtest.plを渡します。
つまり、
>/usr/bin/perl ./test.pl
と同じ動作をします。
なお実際にtest.plが実行される際は、先頭行の「#!/usr/bin/perl」はコメント行としてスルーされます。
ところでこの「#!」ですが、皆さんは名前をご存知でしょうか?
「シェバング」(shebang)と呼ぶそうです。
語源は「sharp bang」「shell bang」など諸説あるようですが、名前が付いている事は知りませんでした。
また先頭行の「#!/usr/bin/perl」を、「シェバング行」と呼ぶこともあるようです。
コメント