Wie kann ich Perl-warten Sie, bis die untergeordneten Prozesse im hintergrund gestartet und mit system()?

Ich habe einige Perl-code, der ausgeführt wird, ein shell-Skript für mehrere Parameter, um zu vereinfachen, werde ich einfach davon ausgehen, dass ich code, der wie folgt aussieht:

for $p (@a){
    system("/path/to/file.sh $p&");
}

Ich würde gerne ein paar mehr Sachen nach, aber ich kann nicht einen Weg finden, zu warten, bis alle Kind-Prozesse zu beenden, bevor Sie fortfahren.

Konvertieren Sie den code zu verwenden, fork() zu schwierig sein. Gibt es nicht einen einfacheren Weg?

Sie benötigen den tatsächlichen return-code aus file.sh? Sie können das Skript ändern, so dass es in eine Datei schreibt, wenn Sie abgeschlossen?
Warum sollte konvertieren Sie den code zu Gabel schwierig sein? Blenden Sie alle details in einem Unterprogramm. Man könnte sogar neu definieren system() aufrufen, um Ihre neue Routine statt.
Wahrscheinlich werde ich nur split diesen Teil in eine separate Skript wird der Gabelung, und rufen Sie die von der system call...

InformationsquelleAutor Osama Al-Maadeed | 2009-05-26

Schreibe einen Kommentar