为什么irb -r使__FILE__成为绝对路径?
foo.rb是一个单行puts __FILE__
irb -r ./foo.rb
给了我foo.rb的绝对路径。 如果我运行ruby foo.rb
这不是行为。 为什么会发生在irb?
irb 0.9.6(09/06/30),ruby 1.9.3p327
在IRB中发生这种情况的原因与如果您编写了名为bar.rb
的程序具有以下内容的情况相同。
require './foo'
你会发现使用带有require的IRB与调用bar.rb
没什么不同。
从文档:
__FILE__
– 当前正在执行的文件的名称,包括相对于启动应用程序的目录的路径(或当前目录,如果已更改)。
因此,这包括相对于启动应用程序的目录的路径。 谁知道irb或bar在哪里? 如果不清楚,那么也给出了路径。