我第一次使用OptionParser。
我想知道,如何让OptionParser处理没有带有特定标志名称的参数。我希望能够编写这样的语句:
myscript.rb -d someoption -b someotheroption filename
在上述命令中,filename
是我想要操作的文件名,没有任何选项前缀。我该如何使用 OptionParser 解析上述命令,并获取对 filename
的引用?
我第一次使用OptionParser。
我想知道,如何让OptionParser处理没有带有特定标志名称的参数。我希望能够编写这样的语句:
myscript.rb -d someoption -b someotheroption filename
在上述命令中,filename
是我想要操作的文件名,没有任何选项前缀。我该如何使用 OptionParser 解析上述命令,并获取对 filename
的引用?
OptionParser
专门处理以破折号开头的选项。解析后,剩余的参数将保留在ARGV
中。您可以在那里检查文件名,并在缺失时退出并显示错误信息。require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
options[:verbose] = v
end
end.parse!
p options
p ARGV
p "Where is my hat?!" if ARGV.length == 0
$ ruby parse.rb
{}
[]
"Where is my hat?!"
$ ruby parse.rb hat
{}
["hat"]
$ ruby parse.rb -v hat
{:verbose=>true}
["hat"]