通過指定值的列表對於給定的選項是重複該選項(例如,作爲接受java
和C編譯器的-D
選項),例如所接受的方式
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