GNU与变量序列并行?

时间:2015-06-03 20:05:00

标签: bash gnu-parallel

我想使用GNU' s parallel并行运行程序parallel prog ::: {1..100} ,其中一个参数在序列中取值。例如:

parallel prog ::: {1..$x}

但是,我事先并不知道序列的上限,所以我希望能够做到这样的事情:

$x

其中[UIView beginAnimations:nil context:nil];是我在某个地方计算的数字。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:6)

假设seq程序(或类似程序)可用,

parallel prog ::: $(seq 1 $x)

如果没有,你可以假装它:

parallel prog ::: $(for ((i=1; i < x; i++)) do; echo $i; done)

正如Ole指出的那样,如果$x很大,那么生成的数字序列可能太大而无法放在命令行上。在这种情况下,使用上述两种方法之一通过标准输入将参数提供给parallel

seq 1 "$x" | parallel prog
for ((i=1; i<x; i++)) do; echo "$i"; done | parallel prog