我的计划有三个选项./program a b c INPUT > OUTPUT
(a
,b
,c
是选项。)
我有一个选项组合列表:
cat list_of_combinations
1 2 3
4 8 3
1 5 7
9 5 6
我想使用这四种不同的组合来执行program
。例如:
./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
我的问题是:
如何在使用变量字符串作为选项时执行程序/命令?
修改
如果只有一个字符作为变量,我就不会有任何问题。我的意思是:
程序只有一个选项:
./program a INPUT > OUTPUT
cat VARIABLES
1
15
78
while read VARIABLE; do
./program $VARIABLE INPUT > OUTPUT
done < VARIABLES
但是当有多个选项(字符串)时,例如./program a b INPUT > OUTPUT
我收到错误。
答案 0 :(得分:2)
在参数变量周围使用引号:
while read COMBO; do
./program "$COMBO" INPUT >> OUTPUT
done < list_of_combinations
如果没有引号,$COMBO
将被视为3个不同的输入,而不是引号中的单个字符串。
答案 1 :(得分:1)
将选项放在命令行上:
./program $COMBO INPUT >> OUTPUT
所以你的第二个例子应该有效。它出了什么问题?