我正在扩展一个类,它使用OptionParser来解析命令行选项。
我希望我的班级处理最后一个选项之后剩余的参数。Ruby 中是否有与Coptind
中调用者可用的等价物getopt(3)
?
某种确定方法,在其中找到了多少个选项ARGV
- 所以我可以shift
通过那么多来跳过选项并只处理参数?
例如,我可以访问opt_parser
对象本身。也许,我能从中算出,我的ARGV
它消耗了多少块吗?
我正在扩展一个类,它使用OptionParser来解析命令行选项。
我希望我的班级处理最后一个选项之后剩余的参数。Ruby 中是否有与Coptind
中调用者可用的等价物getopt(3)
?
某种确定方法,在其中找到了多少个选项ARGV
- 所以我可以shift
通过那么多来跳过选项并只处理参数?
例如,我可以访问opt_parser
对象本身。也许,我能从中算出,我的ARGV
它消耗了多少块吗?
我不明白你的问题,你能添加一个最小的例子来说明你的问题。
如果我使用以下选项运行这个最小示例-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 包含剩余的参数。