特定のオプションの値のリストを指定するための受け入れられた方法は、そのオプション(たとえば、Cコンパイラーによって受け入れられたオプション)を繰り返すことです。-D
java
my_script.rb --test=arg1 --test=arg2
場合によっては、引数の性質上、あいまいさを導入せずに区切り文字を使用できる場合があります(たとえば、-classpath
へのオプションjava
、より明確には、-o
へのオプションps
)。したがって、通常はコンマを含めることができない場合はarg1
、例を受け入れることもできますarg2
,
my_script.rb --test=arg1,arg2
上記の両方の規則をサポートするコードは、次のようなものになります。
require 'optparse'
...
test_vals = []
...
opt_parser = OptionParser.new do |opt|
...
opt.on("-t", "--test=arg1[,...]", "Test") do |arg|
test_vals += arg.split(',')
end
...
end
opt_parser.parse!
puts test_vals.join("\n")
それで:
$ my_script.rb --test=arg1 --test=arg2
arg1
arg2
$ my_script.rb --test=arg1,arg2
arg1
arg2
$ my_script.rb --test=arg1 --test=arg2,arg3
arg1
arg2
arg3