我正在尝试实现以下目标,我想使用 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)
您在并行运行之前扩展了命令替换,这就是它失败的原因。
您可以使用单引号避免这种情况:
parallel 'var=$(printf "%.5d" {}); echo test_$var' ::: $(seq 0 3)