4

我正在尝试实现以下目标,并且我想在使用 GNU 并行的多个进程上做到这一点。

for i in $(seq 0 3); do
 var=$(printf "%.5d" $i)
 echo test_$var
done

 Output:
--------------------
test_00000
test_00001
test_00002

我试过这个,它不工作:

parallel var=$(print "%.5d" {})\; echo test_$var ::: $(seq 0 3)
4

1 回答 1

5

您在并行运行之前扩展了命令替换,这就是它失败的原因。

您可以使用单引号来避免这种情况:

parallel 'var=$(printf "%.5d" {}); echo test_$var' ::: $(seq 0 3)
于 2014-01-09T00:19:08.463 回答