0

我有两个 ruby​​ 脚本:“main.rb”和“sub.rb”在同一个目录中。

主文件

require "./sub.rb"

someMethod

子文件

def someMethod
    puts __FILE__
end

当 main.rb 脚本运行时,输出显示“sub.rb”文件的路径(例如,.../ruby-examples/get-script-directory/sub.rb)。我正在寻找可以用来代替puts __FILE__将路径返回到“main.rb”的行的东西。

这是一个简化的例子。这里的真正目标是能够将 ruby​​ 模块脚本放在任何地方,并让它们引用主执行脚本所在的目录(通过 File.dirname() 之类的东西)。例如,在主脚本的目录中写入输出或日志文件.

有没有办法从包含的模块脚本中确定执行 ruby​​ 脚本的路径?

4

1 回答 1

1

$0是执行脚本的文件,所以你可以使用:

File.dirname($0)

http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/variable.html#zero

于 2013-05-11T00:53:54.957 回答