仅在从命令行调用脚本时运行代码

时间:2012-01-24 16:55:09

标签: ruby command-line

因此,当我从命令行调用我的脚本时,我希望它接受一个int并使用值执行某些操作:

ruby script.rb


puts ARGV[0], etc...

但是,无论何时加载或需要脚本并且不从命令行调用脚本,我都想完全跳过这部分代码。如何检测脚本是通过命令行调用还是仅加载?谢谢!

1 个答案:

答案 0 :(得分:59)

将它放在脚本的底部是很常见的:

if __FILE__==$0
  # this will only run if the script was the main, not load'd or require'd
end

因为我喜欢在我的文件顶部看到主要操作,所以我通常会在文件中放置一个def run!作为第一个方法,然后用以下内容结束文件:

run! if __FILE__==$0