実行スクリプトの探索パス
rubyの実行コマンドのオプションについて勉強しました。地味にまとめます。
参考書籍です。この本読んでRubyを勉強します。
- 作者: るびきち
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2009/05/25
- メディア: 単行本
- 購入: 23人 クリック: 255回
- この商品を含むブログ (60件) を見る
-Sオプション
-Sオプションをつけた場合、実行スクリプトの探索パスから実行スクリプトを検索します。
実行スクリプトの検索パスは、
環境変数RUBYPATHと、環境変数PATHに指定されたディレクトリが対象になります。
例えば、以下のディレクトリ構成になっていて、
カレントディレクトリがrubyprjだとします。
rubyprj
|-- dir1
| `-- hello.rb
`-- dir2
※hello.rbはHello world!を出力するだけのスクリプトです。
以下のようにコマンドを実行すると、カレントディレクトリ(rubyprj)に実行スクリプトが存在しないためエラーになります。
rubyprj% ruby hello.rb ruby: No such file or directory -- hello.rb (LoadError)
-Sオプションを指定せずに、相対パスでディレクトリを指定するならこんなかんじでもOKです。
rubyprj% ruby dir1/hello.rb Hello world!
次に、-Sオプションによる実行スクリプトの検索パス指定を試してみます。
環境変数RUBYPATHにdir1を設定します。
RUBYPATH=/Users/xxx/rubyprj/dir1 export RUBYPATH
さきほどエラーになったコマンドを再度実行してみます。
rubyprj% ruby hello.rb Hello world!
上手く動作しました。
環境変数RUBYPATHを使いましたが、環境変数PATHでも同様に動作します。
ただし、RUBYPATHに指定されたものが優先されます。