3

我已经开始在 Ruby 中使用选项解析器来取得普遍的成功。不幸的是,ruby-docs 对我想做的事情并不是特别有帮助。是否可以将多个值传递给一个参数,或者将一个参数定义为一个数组并将多个值传递给它?

require 'optparse'

@user_name = nil

opts = OptionParser.new
opts.on("-n name", "--name name", "Name Input"){|n|
@user_name = n
}
opts.parse!(ARGV)

if @user_name.nil? == false
  puts @user_name
else
  puts "Nil Value"
end

现在如果你运行这个:

ruby nametest.rb -n John Doe

你会得到:

John

我希望在屏幕上同时打印名字和姓氏。

4

1 回答 1

6

这不是 ruby​​ 问题,而是大多数命令行解析器的工作方式。空格分隔标记,因此您需要使用引号或转义空格字符进行分组。

ruby nametest.rb -n "John Doe"
# or
ruby nametest.rb -n John\ Doe
于 2012-11-05T04:10:07.817 回答