簡體   English   中英

Ruby OptionParser:2個選項,1個參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM