我想使用GNU' s parallel
并行运行程序parallel prog ::: {1..100}
,其中一个参数在序列中取值。例如:
parallel prog ::: {1..$x}
但是,我事先并不知道序列的上限,所以我希望能够做到这样的事情:
$x
其中[UIView beginAnimations:nil context:nil];
是我在某个地方计算的数字。我怎样才能做到这一点?
答案 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