pandazx's blog

Hadoop, データ分析など雑多な技術ブログ

スクリプトのヘッダで行う実行コマンドのパス指定方法

よくスクリプトのヘッダには以下のように書きます。

#! /usr/bin/env ruby

おまじないとして、今までenvの意味を調べてこなかったのですが、
今日、ようやく調べて目からウロコでした。

Rubyスクリプトの1行目の記述 -シェバング

上記の例でいえば、rubyのパスが環境により違うので
envコマンドにrubyのパスを調べてもらおうという仕組みです。

これにより、envコマンドのパスが違わなければ、
ruby, perlなどのパスが違う環境でも動きます。

rubyよりはenvの方がパスが違うことの方が少ないのは間違いないでしょう。

また、「!#」の行のことをshebang(シェバング)と呼ぶそうです。