如何从另一个脚本中确定执行ruby脚本的路径?

时间:2013-05-11 00:35:11

标签: ruby

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

main.rb的

require "./sub.rb"

someMethod

sub.rb

def someMethod
    puts __FILE__
end

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

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

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

1 个答案:

答案 0 :(得分:1)

$0是执行脚本的文件,因此您可以使用:

File.dirname($0)

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