From: kensaku Maki Date: 2004-04-14T20:04:11+09:00 Subject: [ruby-list:39547] スクリプトがあるディレクトリパスの取得方法 まきと申します。 あるRubyスクリプトの存在するディレクトリと ワーキングディレクトリが異なる場合、 スクリプトのあるディレクトリのパスを 取得する方法について悩んでいます。 C/C++だとARGV[0]が自分自身の名前となっていますから これを利用すれば取得できます。 しかしRubyではARGV[0]が第一引数となっていますので、 自分自身の名前を取得することが出来ません。 また、Dir.pwdではワーキングディレクトリのパスしか取得できません。 環境変数をあらかじめ定義する、スクリプト内でfindをかけるなども 考えたのですが、ちょっと大げさな気がします。 なにか良い方法はないでしょうか? 具体的にやりたいのは、例えば、 /home/maki/wd/foo.rb と同じ場所にあるbar.txtをロードするスクリプトを、 /home/maki/ で実行する場合です。 /home/maki/でfoo.rb実行する場合でも、絶対パス指定しておけば、 ワーキングディレクトリが異なったとしてもbar.txtを呼び出せます。 しかしこの2つのファイルを別のディレクトリに移動して 別のディレクトリで実行させると、パスが違うのですから 当然bar.txtをロードできません。 Rubyスクリプト内から自分自身がいるディレクトリのパスが 取得できれば解決できると思うのですが・・・。 なんでこんなことで悩んでいるかというと、CVSからチェックアウトした際、 Rubyスクリプトの置いてある場所が同一であるとは限らないからです。 どうぞよろしくお願いします。 実行環境は Windows2000SP4+Cygwin1.5.9+Ruby1.8.1 Redhat9+Ruby1.6.8 です。