쉘 스크립트 병렬화

쉘 스크립트 병렬화

다음 줄이 있습니다.

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

큰따옴표를 사용하지 않고 동일한 접근 방식을 시도해 보세요!

관련 정보