Aufruf von shell-Funktionen mit xargs

Ich versuche, mit xargs aufrufen einer komplexeren Funktion, die parallel.

#!/bin/bash
echo_var(){
    echo $1
    return 0
}
seq -f "n%04g" 1 100 |xargs -n 1 -P 10 -i echo_var {} 
exit 0

Dieser gibt den Fehler zurück

xargs: echo_var: No such file or directory

Irgendwelche Ideen auf, wie ich verwenden können, xargs, um dies zu erreichen, oder eine andere Lösung(en) wäre zu begrüßen.

Die Gefahr, user1148366, Gefahr! Nicht verwenden die bash-für die parallele Programmierung - führen Sie in so viele Probleme. Verwendung von C/C++, pthreads, oder Java-threads, oder etwas, das Sie denken, lange und hart über das, was Sie tun, denn die parallele Programmierung nimmt eine Menge Gedanken zu bekommen Recht.
Wenn die Aufgaben sind unabhängig, wie konvertiert alle diese Bild-Dateien in png, dann Mach dir keine sorgen. Es ist, wenn Sie synchronisation (jenseits warten, bis alle fertig) und die Kommunikation, es wird chaotisch.
Ich bin seit langer Zeit ein Java-dev und ich arbeiten bereits in groovy zu spät. Und ich weiterhin zu den Menschen sagen: Freunde lassen nicht Freunde schreiben bash-Skript. Und doch, ich finde mich in diesem Beitrag/Lösung, weil (trauriges Gesicht 🙁 ) ich bin beschäftigt bei der parallelen Verarbeitung in der bash. Ich könnte leicht tun Sie es in groovy/java. Schlecht!
Auch besprochen in unix.stackexchange.com/questions/158564/...

InformationsquelleAutor fac3 | 2012-06-12

Schreibe einen Kommentar