我想知道允许可选参数以破折号( - )开头的最佳方法是什么。我希望子命令接受数字样式参数,该参数应为“+42”或“-123”。所以从命令行我可以做到:
gliapp show -123
这导致错误,因为gli认为-123是一个未知的开关。 我知道可以做到
gliapp show -- -123
但我不希望用户解决此问题。 在将ARGV传递给gli run之前,我是否必须自己处理-123?
这是一个最小的例子:
#!/usr/bin/env ruby
require 'gli'
include GLI::App
subcommand_option_handling :normal
arguments :strict
desc 'p given arg which may start with a dash (-)'
arg "number", :optional;
command :show do |c|
c.action do |global_opts,opts,args|
p args.first
end
end
exit run(ARGV)
答案 0 :(得分:0)
GLI在封面下使用OptionParser
,它将获取以破折号开头的所有参数。这是非常标准的UNIX。
您可以使用标记来捕获值,如下所示:
command :show do |c|
c.flag :number
c.action do |global,options,args|
puts options[:number]
end
end
然后:
> gliapp show --number=-123
-123