OptionParser中的Nil参数

时间:2012-02-23 08:54:56

标签: ruby optionparser

我尝试将我的脚本设置为运行类似

的内容
ruby Script.rb --ip "192.168.3.206"

但如果没有ip参数,则使用默认值“192.168.1.1

我试试这段代码,但它总是以ip

的形式返回nil
options = {}

OptionParser.new do |opts|
  options[:ip] = "192.168.1.1"
  opts.on("-i", "--ip", String, "Set ip") do |command_line_ip|
    options[:ip] = command_line_ip
  end
end.parse!
p options

此代码的输出为

{:ip=>nil}

请告诉我我的代码在哪里错了?

1 个答案:

答案 0 :(得分:4)

你必须表明你的--ip开关有一个参数:

opts.on("-i MANDATORY", "--ip=MANDATORY", String, "Set ip") do |command_line_ip|