2016-05-02 2 views
-1

私は、コマンドラインオプションを解析するためにOptionParserを使用するクラスを拡張しています。OptionParserの後にARGVをシフトする方法は?

の最後のオプションをの後に残しておきたいと思います。 Rubyにoptindと同等のものがありますか?Cのgetopt(3)の呼び出し元が利用できますか?

決定のいくつかの方法は、どのように多くの選択肢がARGVで発見された - 私は多くのことでshiftオプションとプロセスのみ引数をスキップすることができます

私は例えば、opt_parserオブジェクト自体へのアクセス権を持っています。私は、おそらく、それから何かを把握することができますか?私のARGVがいくつ消費されましたか?

+1

"[MCVE]" をお読みください。あなたの質問は、問題をよりよく定義する必要があります。あなたの出力がどのようなものでなければならないかを、コード例で示してください。 –

答えて

1

私はあなたの問題を示すために、最小限の例を追加することができ、あなたの質問を理解していません。

私はオプション-v testで、この最小限の例を実行する場合:

require 'optparse' 

#Anlegen des Parsers 
opts = OptionParser.new() 
opts.on("-v", "--[no-]verbose", "Run verbosely") { |v| 
    puts "->Verbose is #{v.inspect}" 
} 

opts.parse! 

puts "Remaining ARGV: %s" % ARGV.inspect 

あなたはオプションを解析した後、私は結果に

->Verbose is true 
Remaining ARGV: ["test"] 

を取得し、ARGVは、残りの引数が含まれています。

+0

あなたはおそらく、おそらく、おそらく、おそらく、おそらく私が使用している基底クラスである - Sensu :: Plugin :: Check :: CLI - OptionParserを渡す前に 'ARGV'のコピーを作成します。しかし、私は 'argv'(小文字)として(削除オプション付き)処理されたリストを得ることができ、見つかったので、私は大丈夫だよ...願い、私は質問を削除することもできますが、私はできません... –

+0

バッジの下に「削除」オプションはありませんか?通常、質問者が自分の質問を削除することは可能です。 – knut

+0

私はそのコメントを投稿したときに、その質問は既に回答されているため、削除は機能しませんでした。今、削除を完全に禁止するのではなく、回答した質問を繰り返し削除すると悪い人になると警告しています。この短い時間に何か変わったのだろうか... –

関連する問題