![](/img/trans.png)
[英]How to use different options for every positional argument with OptionParser
[英]Ruby OptionParser: 2 options, 1 argument
我正在嘗試使用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 ..
類似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
該代碼假定采用這些選項之后,命令行上剩下的唯一內容應該是文件名。 我覺得有一種更優雅的方法可以將其他可能使命令行混亂的問題考慮在內,並允許對其進行錯誤糾正。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.