2016-08-04 7 views
0

Ich muss ZIP und dann einige Dateien per FTP senden. Das Problem ist, dass PERL alles ausführt und nicht darauf wartet, dass die Komprimierung versucht, die ZIP zu senden, und das Skript schlägt fehl.Führe den nächsten Befehl aus, nachdem der vorherige Befehl fertig ist

Das Skript in Pseudo-Code ist so etwas wie dieses:

system("/path/to/zip/gzip myfile.txt") 
system("/path/to/ftp/ftp put myfile.txt") 
+1

Verwenden Sie nicht den Systembefehl. Verwenden Sie Perl-Module – Jens

+0

@Jens Warum sollte ich Perl-Module über Systembefehl verwenden? – prgrm

+1

Wenn Sie Perl Module verwenden, ist das Programm portabel – Jens

Antwort

2

system wartet auf den Befehl zu beenden. Die einzige Möglichkeit, dieses Verhalten zu ändern, ist das Hinzufügen eines kaufmännischen Und-Zeichens &.

So

system('<command> &'); 

den Befehl und nicht warten auf den Befehl zu beenden auszuführen. Um zu warten, bis der Befehl beendet ist, entfernen Sie einfach das kaufmännische Und-Zeichen.

system('<command>'); 
Verwandte Themen