如何在GNU中与数组并行提供命令?例如,我有这个数组:
x=(0.1 0.2 0.5)
现在我想将其提供给parallel
parallel echo ::: $x
这不起作用。它将所有参数提供给单个调用,因为它打印
0.1 0.2 0.5
而不是
0.1
0.2
0.5
是
的输出parallel echo ::: 0.1 0.2 0.5
我该怎么做?
答案 0 :(得分:6)
如果要提供数组中的所有元素,请使用:
parallel echo ::: ${x[@]}
答案 1 :(得分:2)
来自:http://www.gnu.org/software/parallel/man.html
示例:使用shell变量 使用shell变量时,您需要正确引用它们,否则它们可能会在空格上分割。
请注意:
之间的区别V=("My brother's 12\" records are worth <\$\$\$>"'!' Foo Bar)
parallel echo ::: ${V[@]} # This is probably not what you want
和
V=("My brother's 12\" records are worth <\$\$\$>"'!' Foo Bar)
parallel echo ::: "${V[@]}"
在包含特殊字符(例如空格)的实际命令中使用变量时,您可以使用“$ VAR”或使用“s和-q:
来引用它们V="Here are two "
parallel echo "'$V'" ::: spaces
parallel -q echo "$V" ::: spaces