Run code only if script called from the command li

2019-03-11 17:53发布

So when I call my script from the command line, I want it to take in an int and do something with the value:

ruby script.rb


puts ARGV[0], etc...

However, whenever the script is loaded or required and not called from command line, I want to completely skip this part of the code. How can I detect whether the script has been called via command line, or just loaded? Thanks!

1条回答
乱世女痞
2楼-- · 2019-03-11 18:24

It is common to put this at the bottom of your script:

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

Because I like to see the main action at the top of my file, I usually put a def run! as the first method in the file and then end the file with:

run! if __FILE__==$0
查看更多
登录 后发表回答