gpt4 book ai didi

Ruby OptionParser : 2 options, 1 个参数

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:31 27 4
gpt4 key购买 nike

我正在尝试使用 OptionParser 读取多个选项并让它们全部作用于单个文件名。 Ex: myprogram.rb -a -b file.txt 如何让 2 个选项共享一个强制参数,同时还允许 -h 之类的东西在没有参数的情况下运行?目前,上面的行只是让 -a-b 作为参数。

optionparser.on("-a FILENAME", "Do this") do |a|
puts a
end
optionparser.on("-b FILENAME", "Do that") do |b|
puts b
end

编辑:

它在做什么:

myprogram.rb -a -b file.txt
=> -b

我需要它做什么:

myprogram.rb -a -b file.txt
=> file.txt
=> file.txt

注意:

这些命令应该能够独立运行,也可以同时运行,类似于 ls -a ..ls -l ..ls -a - l .. 但是,如果没有给出文件名,则 NEITHER 命令应该有效。理想情况下,此解决方案应适用于任何 n 个选项。

最佳答案

我现在拥有的是:

alpha=false
beta=false
optionparser.on("-a", "Do this") do |a|
alpha = a
end
optionparser.on("-b", "Do that") do |b|
beta = b
end
if alpha
#do something with ARGV[0]
end
if beta
#do something with ARGV[0]
end

此代码假定在选择选项后,命令行上唯一剩下的应该是文件名。我觉得有一种更优雅的方法可以做到这一点,它考虑到其他可能使命令行困惑的事情,并允许对它们进行错误纠正。

关于Ruby OptionParser : 2 options, 1 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15813186/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com