【发布时间】:2019-07-16 11:20:36
【问题描述】:
假设我有一个数组:
ITEMS=(
"foo"
"bar"
"baz"
)
我想运行以下命令:
cat template \
| my_command $ITEMS[1] \
| my_command $ITEMS[2] \
| my_command $ITEMS[3] \
> output
我不想为每个数组项硬编码my_command,因为数组是动态的。
我可以做到以下几点:
cat template > output
for var in "${ITEMS[@]}"; do
cat output | my_template $var > output
done
但这似乎很笨拙,因为它多次写入文件。
当调用次数未知时,有没有办法将所有 my_command 调用放入同一个命令中?
【问题讨论】:
-
my_command是否只接受一个输入参数?或者你可以重写my_command来接受多个值吗? -
my_command是我没有编写的外部程序,所以假设它必须采用提供的格式。