【问题标题】:Nil parameter in OptionParserOptionParser 中的 Nil 参数
【发布时间】:2012-02-23 08:54:56
【问题描述】:

我尝试将我的脚本设置为运行这样的东西

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}

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

【问题讨论】:

    标签: ruby optionparser


    【解决方案1】:

    您必须指出您的 --ip 开关有一个参数,如下所示:

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

    【讨论】:

    • 只是为了澄清。它不必是字符串“MANDATORY”,它可以是您想要的任何字符串,它只是表示该命令随后接受一个值。例如:opts.on('--width NUM', Integer, 'Set width of game board') do |w|
    猜你喜欢
    • 2016-01-01
    • 2013-05-18
    • 1970-01-01
    • 2015-03-22
    • 2013-03-26
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多