我有两个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脚本的路径?
答案 0 :(得分:1)
$0
是执行脚本的文件,因此您可以使用:
File.dirname($0)
http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/variable.html#zero