我正在扩展一个类,它使用OptionParser来解析命令行选项。
我希望我的班级能够处理在最后一个选项之后剩余的参数。 Ruby中有optind
的{{1}}可用于C中的getopt(3)
吗?
某种方式确定ARGV
中有多少选项 - 所以我可以shift
跳过选项并仅处理参数
例如,我可以访问opt_parser
对象本身。或许,我可以从中弄清楚,我消耗了多少件ARGV
?
答案 0 :(得分:1)
我不明白你的问题,你能不能添加一个最小的例子来表明你的问题。
如果我使用选项-v test
运行此最小示例:
require 'optparse'
#Anlegen des Parsers
opts = OptionParser.new()
opts.on("-v", "--[no-]verbose", "Run verbosely") { |v|
puts "->Verbose is #{v.inspect}"
}
opts.parse!
puts "Remaining ARGV: %s" % ARGV.inspect
然后我得到了结果
->Verbose is true
Remaining ARGV: ["test"]
解析选项后,ARGV包含其余参数。