foo.rb はワンライナーです。puts __FILE__
irb -r ./foo.rb
foo.rb への絶対パスを教えてくれます。これは、実行した場合の動作ではありませんruby foo.rb
。なぜirbでそれが起こっているのですか?
irb 0.9.6(09/06/30)、ルビー 1.9.3p327
bar.rb
これが IRB で発生する理由は、次の内容で名前を付けたプログラムを作成した場合に発生するのと同じ理由です。
require './foo'
IRB を require で使用することは、require を使用して呼び出すことと同じであることがわかりますbar.rb
。
ドキュメントから:
__FILE__
-- 現在実行中のファイルの名前。アプリケーションが起動されたディレクトリ (変更されている場合は現在のディレクトリ) への相対パスが含まれます。
したがって、これには、アプリケーションが起動されたディレクトリへの相対パスが含まれます。irb や bar がどこにあるか誰が知っていますか? 明確でない場合は、パスも表示されます。