与数组并行馈送 GNU?
Feed GNU parallel with an array?
如何在 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 变量时,您需要正确引用它们,否则它们可能会在 space 上拆分。
注意区别:
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[@]}"
当在包含特殊字符(例如 space)的实际命令中使用变量时,您可以使用 '"$VAR"' 或使用 "'s 和 -q:
V="Here are two "
parallel echo "'$V'" ::: spaces
parallel -q echo "$V" ::: spaces
如何在 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 变量时,您需要正确引用它们,否则它们可能会在 space 上拆分。
注意区别:
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[@]}"
当在包含特殊字符(例如 space)的实际命令中使用变量时,您可以使用 '"$VAR"' 或使用 "'s 和 -q:
V="Here are two "
parallel echo "'$V'" ::: spaces
parallel -q echo "$V" ::: spaces