如何在GNU并行数组中提供命令?例如,我有这样的数组: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
输出如何能做到这一点吗?
如何在GNU并行数组中提供命令?例如,我有这样的数组: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
输出如何能做到这一点吗?
如果要提供在阵列中使用的所有元素:
parallel echo ::: ${x[@]}
来源: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''或使用''和-q:
V="Here are two "
parallel echo "'$V'" ::: spaces
parallel -q echo "$V" ::: spaces
我想在未来任何数组元素包含空格的情况下,最好使用'“$ {x [@]}”'' 'x =(“0.1 + 6”“0.2 - b”“0.5 + a”)' –