Ich versuche, Xargs zu verwenden, um eine komplexere Funktion parallel aufzurufen.Shell-Funktionen mit Xargs aufrufen
#!/bin/bash
echo_var(){
echo $1
return 0
}
seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {}
exit 0
Dies gibt den Fehler
xargs: echo_var: No such file or directory
Irgendwelche Ideen auf, wie ich xargs dies tun kann, oder jede andere Lösung (en) wäre willkommen.
Gefahr, user1148366, Gefahr! Verwenden Sie keine bash für die parallele Programmierung - Sie werden so viele Probleme haben. Verwenden Sie C/C++ und Pthreads, oder Java-Threads, oder irgendetwas, was Sie lange darüber nachdenken lässt, was Sie tun, weil paralleles Programmieren viele Gedanken benötigt, um richtig zu machen. –
@DavidSouther Wenn die Aufgaben unabhängig sind, z. B. alle diese Bilddateien in PNG konvertieren, dann mach dir keine Sorgen. Es ist, wenn Sie Synchronisation haben (darüber hinaus warten, bis alle fertig sind) und Kommunikation, dass es unordentlich wird. –