*shebang(しばん) [#w0dc1768] Unix系OSでスクリプトの1行目に書くヤツ。 #!/usr/local/bin/perl ''#!''から始まる行のことを''shebang line''という。 ''#!''以降のパスでプログラムを実行、オプションも指定できる。そのファイルパスを実行時引数に加える。 そのため多くのスクリプト言語では''#''以降をコメントアウトとする(shebang lineを無視するため)。 Unix系OSの場合。実行許可されたファイルを実行した場合、elfその他の実行形式の場合、その[[binfmt]]で実行する。 ''shebang line''を見つけた場合。上記のような振る舞いをする(binfmt_script等々)。 Windows環境においてはただのおまじないになってしまう。(cygwinで変わる?詳しい人よろ) **例 [#xbf94cde] #!/usr/local/bin/perl #!/usr/bin/perl 環境によって異なるため、envがある環境では以下のようにもできる。 #!/usr/bin/env perl 最近のOSはパッケージ管理が付いているので、多くの場合スクリプト言語のプログラム(ruby, perl, python)は''/usr/bin''にある。 手動インストールした場合は、''configure''で指定しなかった場合''/usr/local/bin''になることが多い。 sh, sedなどは''/bin''にあることがおおい。 #!/bin/sh #!/bin/sed プログラムのパスが分からないときは、''which''コマンドを使うとよい。 $ which perl /usr/bin/perl **変態的な例 [#if7cfec1] #!/var/bin/befunge befungeでは''#''に意味がある(次の文字を読み飛ばす)のでそれ以降を無視できないため この様にする。''/''で割り算、''v''で読み込みの方向が下に向く。