Estoy tratando de usar xargs para llamar a una función más compleja en paralelo.Llamar funciones de shell con xargs
#!/bin/bash
echo_var(){
echo $1
return 0
}
seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {}
exit 0
Esto devuelve el error
xargs: echo_var: No such file or directory
¿Alguna idea sobre cómo puedo usar xargs para lograr esto, o cualquier otra solución (s) sería bienvenido.
Peligro, user1148366, Peligro! No use bash para la programación paralela, se encontrará con tantos problemas. Use C/C++ y pthreads, o subprocesos de Java, o cualquier cosa que lo haga reflexionar detenidamente sobre lo que está haciendo, porque la programación paralela requiere una gran cantidad de reflexión para hacerlo bien. –
@DavidSouther Si las tareas son independientes, como convertir todos estos archivos de imagen a png, entonces no se preocupe. Es cuando tienes la sincronización (más allá de esperar a que todos terminen) y la comunicación se vuelve desordenada. –