1

私のプログラムには 3 つのオプションがあります./program a b c INPUT > OUTPUT( abcはオプションです)。
オプションの組み合わせのリストがあります:

cat list_of_combinations
1 2 3
4 8 3 
1 5 7
9 5 6    

programこの 4 つの異なる組み合わせを使用して実行したいと考えています。例えば:

./program 1 2 3 INPUT >> OUTPUT  
./program 4 8 3 INPUT >> OUTPUT
./program 1 5 7 INPUT >> OUTPUT

私はすでにこれを試しました:

while read COMBO; do
    echo $COMBO | 
     ./program - INPUT >> OUTPUT
done < list_of_combinations

この:

while read COMBO; do
    ./program $COMBO INPUT >> OUTPUT
done < list_of_combinations  

私の質問は次のとおりです:
変数の文字列をオプションとして使用しながらプログラム/コマンドを実行する方法は?

編集

変数として1文字しかない場合は問題ありません。つまり、
プログラムは 1 つのオプションしか取りません。

./program a INPUT > OUTPUT
cat VARIABLES
    1 
    15
    78
while read VARIABLE; do
    ./program $VARIABLE INPUT > OUTPUT
done < VARIABLES

しかし、いくつかのオプション(文字列)がある場合、たとえば./program a b INPUT > OUTPUTエラーが発生します。

4

2 に答える 2

2

引数変数を引用符で囲みます。

while read COMBO; do
    ./program "$COMBO" INPUT >> OUTPUT
done < list_of_combinations

引用符$COMBOがない場合、引用符の場合のように 1 つの文字列ではなく、3 つの異なる入力と見なされます。

于 2013-10-20T16:19:11.803 に答える