Ruby-获取正在执行的文件
我正在尝试获取对传递给ruby解释器的脚本的引用。例如,如果我正在运行Ruby-获取正在执行的文件,ruby,Ruby,我正在尝试获取对传递给ruby解释器的脚本的引用。例如,如果我正在运行ruby foo.rb,我希望获得对foo.rb文件的引用 我认为在Python中,这可以通过sys.argv[0]访问。可以调用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu但是这不是我要寻找的解决方案,因为\uuuuuuuuuuuuuuuuuu 有什么办法吗?我发现$0是用来启动程序的文件名。非常简单。使用File类中的方法来操作文
ruby foo.rb
,我希望获得对foo.rb
文件的引用
我认为在Python中,这可以通过sys.argv[0]
访问。可以调用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
但是这不是我要寻找的解决方案,因为\uuuuuuuuuuuuuuuuuu
有什么办法吗?我发现$0
是用来启动程序的文件名。非常简单。使用File类中的方法来操作文件
Inside test.rb,我有
puts __FILE__
puts File.dirname(__FILE__)
puts File.basename(__FILE__)
当你跑步的时候
ruby a/b/test.rb
你得到
a/b/test.rb
a/b
test.rb
让我为读者添加一个到$0
的官方链接。
它是Ruby本身提供的全局变量之一
包含正在执行的脚本的名称。可能是可转让的
将不起作用,因为所说的u获取执行脚本的当前文件。对于test.rb中的代码,它将始终返回test.rb;对于something_else.rb中的代码,它将始终返回something_else.rb。我的问题是返回最初由ruby解释器运行的脚本。这就是我想要的答案。从irb
运行文件时,我不希望$0
告诉我程序名是irb
,但我想知道正在执行哪个脚本文件。