次の行があります。
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
二重引用符を使用せずに同じアプローチを試してください。