嗨,我正在使用trollop解析我在ruby中的命令行选项,我有四个相互排斥的选项,并且总是需要一个选项。
我一直想弄清楚如何确保这四种选择中只有一种被通过。如果调用多个选项,我需要使用帮助(教育?)显示。
我从trollop源中看到了一种叫做冲突的东西
method
听起来就像我想要的那样(?)但我想不出如何正确地使用它。
我现在的一节实际上是
require 'trollop'
opts = Trollop::options do
opt :last, "last"
opt :first, "first"
opt :file, "filename",
:type => String
opt :date, "date to read",
:type => Date
end
Trollop::die :file, "must exist" unless File.exist?(opts[:file]) if opts[:file]谢谢
发布于 2018-03-16 02:37:39
您可以将conflicts作为一行添加到do块中,如下所示:
require 'trollop'
opts = Trollop::options(ARGV) do
opt :last, "last"
opt :first, "first"
opt :file, "filename", :type => String
opt :date, "date to read", :type => Date
conflicts :last, :first
end
puts "Your Options Are: "
puts opts然后得到以下输出:
ruby test_options.rb --last Last --first First
Error: --last conflicts with --first.
Try --help for help.https://stackoverflow.com/questions/49308369
复制相似问题