parallelize shell script

3

Eu tenho uma linha a seguir:

for length in "$(ls $OUT_SAMPLE)"
do $CODES/transform_into_line2.rb -c $OUT_SAMPLE -p 0 -f $length & 
done

Então, ele deve paralelizar o loop for, mas de alguma forma ainda o executa em uma sequência. No entanto, se eu fizer o seguinte:

 $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

Ele é executado em paralelo. Por que um loop não funciona?

    
por Iris Pader 12.12.2015 / 04:20

1 resposta

2
for length in "$(ls $OUT_SAMPLE)"

deve ser reescrito

for length in $(ls $OUT_SAMPLE)

Na verdade, você está dando um loop em um único valor.

Você pode verificar os valores com os quais está fazendo um loop:

for length in "$(ls $OUT_SAMPLE)" ; do
  echo x$length 
done

Tente o mesmo sem as aspas duplas!

    
por 12.12.2015 / 06:46