3

私は、Ruby内でオプションパーサーを取得して、一般的な成功を収めるようになりました。残念ながら、ruby-docsは、私がやろうとしていることに特に役立ちません。1つの引数に複数の値を渡すこと、または引数を配列として定義して複数の値を渡すことは可能ですか?

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 nametest.rb -n "John Doe"
# or
ruby nametest.rb -n John\ Doe
于 2012-11-05T04:10:07.817 に答える