2012/05/10

/usr/bin/env について


shcshperlruby などのスクリプトでは、先頭行(「!#」で始まる行)でスクリプトインタープリタへのパスを宣言しています。 このパスがちゃんと通っていればスクリプトが動く。
 →「#!」のことを「シェバング」(shebang) と呼ぶ。また、この行全体を「シェバング行」と呼ぶ。
先日Apache再起動した際、Hiki(ruby)が500エラーで起動しないことがあって、Apacheエラーログを調べたら hiki.cgiアクセスした際「Rubyがみつからないょ」的なエラーメッセージが残ってた。
hiki.cgiを開いてみると、シェバング行で以下のように記述されていた。
#!/usr/bin/env ruby
・・・なんだこのパス指定は。
始めてみる指定なので「/usr/bin/env」でぐぐったら、結構ヒット。
感覚的に批判のページのほうが多いかな?
ワシもこの指定でのメリットが感じられないので、従来どおりのパス指定で完了。
#!/usr/local/bin/ruby

0 件のコメント: