2016-09-24 7 views
1

は、標準的なアプローチありますアイテムはサブオプションを取る?つまり、各値が複合型の場合は?コマンドラインオプション

1つの選択肢は、objectは特別make_value関数として指定された構文を持ってい

--key=[object\ 1],[object\ 2],... 

です。次に、keyを照会すると、objectの配列が返されます。 objectのプロパティを指定する構文は、JSONなどのように見える場合があります。

もう1つの方法は、伝統的な構文を完全に放棄し、ユーザーにコマンドライン全体をJSONオブジェクトとして入力させることです。

+0

ない私が知っています。私が知る限り、あなたの唯一の2つのオプションは、値を1つずつ渡すことです。 json。 –

答えて

0

まず、GNUシステム上の標準は、このではありません。

--key=value\ 1,value\ 2,value\ 3 // WRONG 

しかし、この:

バッシュでこのように書くことができ
--key=value\ 1 --key=value\ 2 --key=value\ 3 

--key=value\ {1,2,3} 

今、値自体がキーと値のペアである場合、1つの値の一般的な使用方法は次のとおりです。

--key=value\ 1=42 

やbashで複数のために:

--key=value\ {1=42,2=300,3=0} 
+0

**最初に:**私のパーサは実際に標準形式も受け入れます。 **第2の(より重要な)**キーが複合である場合、配列内には1つの要素しか存在できないか、あいまいさがあります。 '--key = value \ 1 = 42 --key = value \ 2 = 300'は同じオブジェクト内の' value1'と 'value2'のプロパティを設定するものと解釈されるか、第1のオブジェクトの「値1」、第2のオブジェクトの「値2」である。 – user877329

+1

@ user877329:この時点で、私はあなたが何を運転しているのかがはっきりしていません。おそらくあなたの質問に、1つまたは2つの候補構文の完全で完全な例を投稿して、それらが意味するものを正確に説明する必要があります。 –

関連する問題