2 votos

GNU paralelo: mientras que con el bucle secuencial de comandos

Necesito ejecutar un script de bash en una lista de temas. Me gustaría construir un bucle while, que se ejecuta en varios temas al mismo tiempo. Sin embargo, los comandos dentro del bucle se debe ejecutar de forma secuencial.

Puede usted por favor me confirman que una sintaxis como esta haría el trabajo?

file="subjects.txt"

foo () {

command $subj etc
command 2 $subj etc
command 3 $subj etc
}

while read subj; do foo "$subj" &
done <$file

Gracias de antemano por su ayuda.

Ramtin

1voto

Ole Tange Puntos 1305
file="subjects.txt"

foo () {
  subj="$1"
  command $subj etc
  command 2 $subj etc
  command 3 $subj etc
}
export -f foo

parallel foo :::: "$file"

Se ejecutará n de puestos de trabajo en paralelo (donde n = número de hilos de CPU). A cambio de que el uso de parallel -j10 para 10 puestos de trabajo en paralelo.

La lectura de los capítulos 1+2 de http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html (se puede descargar en https://doi.org/10.5281/zenodo.1146014). Su línea de comandos le encantará.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: