Ruby-获取正在执行的文件

Ruby-获取正在执行的文件,ruby,Ruby,我正在尝试获取对传递给ruby解释器的脚本的引用。例如,如果我正在运行ruby foo.rb,我希望获得对foo.rb文件的引用 我认为在Python中,这可以通过sys.argv[0]访问。可以调用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu但是这不是我要寻找的解决方案,因为\uuuuuuuuuuuuuuuuuu 有什么办法吗?我发现$0是用来启动程序的文件名。非常简单。使用File类中的方法来操作文

我正在尝试获取对传递给ruby解释器的脚本的引用。例如,如果我正在运行
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
,但我想知道正在执行哪个脚本文件。