我不久前写了一篇不错的小Ruby脚本,我非常喜欢.我想通过检查适当数量的参数来提高其稳健性:
if ARGV.length != 2 then
puts "Usage: <command> arg1 arg2"
end
Run Code Online (Sandbox Code Playgroud)
当然那是伪代码.不管怎么说,在C或C++我可以用argv[0]得到的名称,用户用得到我的指挥,无论他们把它叫做喜欢./myScript.rb或myScript.rb或/usr/local/bin/myScript.rb.在Ruby中,我知道这ARGV[0]是第一个真正的参数,并且ARGV不包含命令名称.有什么方法可以得到这个吗?
我想从命令行调用Ruby脚本,并传入键/值对的参数.
命令行调用:
$ ruby my_script.rb --first_name=donald --last_name=knuth
Run Code Online (Sandbox Code Playgroud)
my_script.rb:
puts args.first_name + args.last_name
Run Code Online (Sandbox Code Playgroud)
什么是标准的Ruby方法呢?在其他语言中,我通常必须使用选项解析器.在Ruby中我看到了ARGF.read,但是这似乎不像这个例子那样工作键/值对.
OptionParser看起来很有希望,但我不知道它是否真的支持这种情况.