zvo*_*ase 15 ruby command-line
我已经学习了Ruby几年后对Python非常满意的基础知识(我仍在使用Python做某些事情),但我想知道是否有成语或黑客可以解决这个特殊问题.
我有一个Ruby脚本,我希望能够require script_name使用它,但我也希望能够ruby script_name.rb从终端运行并让它作为命令行脚本运行.在Python中,这可以通过在脚本底部使用以下结构来完成:
if __name__ == '__main__':
# do something here
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法在Ruby中找到相应的东西.有没有办法检测当前脚本是否从命令行运行?也许某种Kernel::方法或什么?理想情况下,我喜欢的是脚本底部的类似内容:
if from_command_line?
# do something here
end
Run Code Online (Sandbox Code Playgroud)
Gar*_*ler 23
你想用:
if __FILE__ == $0
# do stuff
end
Run Code Online (Sandbox Code Playgroud)
__FILE__是源文件名,$0是当前正在执行的脚本的名称.
而
if __FILE__ == $0
Foo.run
end
Run Code Online (Sandbox Code Playgroud)
是我目前正在使用的常用方法
if File.identical?(__FILE__, $0)
Foo.run
end
Run Code Online (Sandbox Code Playgroud)
因为像ruby-prof这样的程序即使在使用时也会使$ 0不相等 .__FILE__--replace-progname
| 归档时间: |
|
| 查看次数: |
2049 次 |
| 最近记录: |