我有以下一行:
for length in "$(ls $OUT_SAMPLE)"
do $CODES/transform_into_line2.rb -c $OUT_SAMPLE -p 0 -f $length &
done
因此,它应该并行化 for 循环,但不知何故它仍然按顺序运行它。但是,如果我执行以下操作:
$CODES/transform_into_line2.rb -c $OUT_SAMPLE -p 0 -f blabla.txt & $CODES/transform_into_line2.rb -c $OUT_SAMPLE -p 0 -f blabla2.txt
它确实并行运行。为什么 for 循环不起作用?
答案1
for length in "$(ls $OUT_SAMPLE)"
应该重写
for length in $(ls $OUT_SAMPLE)
事实上,您正在循环单个值。
您可以验证正在循环的值:
for length in "$(ls $OUT_SAMPLE)" ; do
echo x$length
done
尝试同样的方法而不使用双引号!