我试图在我的 ruby 应用程序中进行简单的选项处理。看起来像OptionParser
我想要的大部分,虽然我想不出一种优雅地处理意外争论的方法。
如果提供了任何意外的参数,我想将其视为-h
已传递参数(显示用法并退出)。我没有看到任何方法来处理它。
如果OptionParser
做不到,是否有另一个库可以用来轻松解析命令行参数?
我试图在我的 ruby 应用程序中进行简单的选项处理。看起来像OptionParser
我想要的大部分,虽然我想不出一种优雅地处理意外争论的方法。
如果提供了任何意外的参数,我想将其视为-h
已传递参数(显示用法并退出)。我没有看到任何方法来处理它。
如果OptionParser
做不到,是否有另一个库可以用来轻松解析命令行参数?
可能有一种巧妙的方法可以做到这一点,但我不知道。我已经这样做了:
opts = OptionParser.new
...
opts.on_tail("-h", "--help",
"Show this message") do
puts opts
exit
end
begin
opts.parse!(argv)
rescue OptionParser::InvalidOption => e
puts e
puts opts
exit(1)
end
如果你在下面另存为 test.rb
#/usr/bin/env ruby
require 'optparse'
test = nil
help = nil
ARGV.options {|opt|
opt.on("--test=test") {|val| test=val}
help = opt.help
begin
opt.parse!
rescue OptionParser::InvalidOption => e
puts help
end
}
并在终端下面执行,
$./test.rb --foo
你得到下面。
Usage: test [options]
--test=test