Ruby - 获取正在执行的文件

时间:2011-12-20 14:48:51

标签: ruby

我正在尝试获取传递给ruby解释器的脚本的引用。例如,如果我正在运行ruby foo.rb,我想获得对foo.rb文件的引用。

我认为在Python中可以通过sys.argv[0]访问它。可以调用__FILE__,但这不是我正在寻找的解决方案,因为__FILE__生成当前执行代码所在的文件。

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:43)

我发现$0是用于启动程序的文件的名称。很容易。

答案 1 :(得分:40)

使用File类中的方法来操作 FILE

在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

答案 2 :(得分:4)

让我为读者添加$0的官方链接。 它是Ruby本身提供的全局变量之一。

http://ruby-doc.org/core-2.0.0/doc/globals_rdoc.html

  

包含正在执行的脚本的名称。可以分配。