从命令运行一个Ruby库

我刚刚学习了几年Ruby对Python的满意之后(我仍然在使用Python做某些事情),但是我想知道是否有成语或破解来解决这个特定问题。

我有一个Ruby脚本,我希望能够做到这一点,它require script_name ,但我也希望能够从终端运行ruby script_name.rb并让它作为命令行脚本运行。 在Python中,这可以通过在脚本底部具有以下结构来完成:

if __name__ == '__main__':
    # do something here

但是,我似乎无法在Ruby中找到等价物。 有没有办法检测当前脚本是否从命令行运行? 也许一些Kernel::方法或什么的? 理想情况下,我想在脚本底部是这样的:

if from_command_line?
  # do something here
end

你可以在ruby中找到类似的功能。

__FILE__当前的源文件名。

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

来源:Ruby Quick Ref


你想要使用:

if __FILE__ == $0
  # do stuff
end

__FILE__是源文件名, $0是当前正在执行的脚本的名称。


if __FILE__ == $0
  Foo.run
end

是我目前使用的常用方法

if File.identical?(__FILE__, $0)
  Foo.run
end

因为像ruby-prof这样的程序可以使$ 0不等于__FILE__即使使用--replace-progname

链接地址: http://www.djcxy.com/p/9331.html

上一篇: Run a Ruby library from the command

下一篇: .py not required for packages in Python 3?