【问题标题】:Why does irb -r make __FILE__ an absolute path?为什么 irb -r 使 __FILE__ 成为绝对路径?
【发布时间】:2012-12-14 06:58:45
【问题描述】:

foo.rb 是一个单行代码,puts __FILE__

irb -r ./foo.rb

给了我 foo.rb 的绝对路径。如果我运行ruby foo.rb,这不是行为。为什么会发生在 irb?

irb 0.9.6(09/06/30), 红宝石 1.9.3p327

【问题讨论】:

    标签: ruby irb


    【解决方案1】:

    在 IRB 中发生这种情况的原因与如果您编写了一个名为 bar.rb 并具有以下内容的程序会发生这种情况的原因相同。

    require './foo'
    

    你会发现像你一样使用带有 require 的 IRB 与调用带有 require 的 bar.rb 没有什么不同。

    来自文档:

    __FILE__ -- 当前正在执行的文件名,包括 相对于应用程序启动目录的路径 (或当前目录,如果已更改)。

    所以这包括相对于应用程序启动目录的路径。谁知道irb或bar在哪里?不清楚的时候也给出路径。

    【讨论】:

      猜你喜欢
      • 2016-03-23
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多