Angenommen, ich habe gerade einen Befehl gestartet, dessen Ausführung lange dauern wird, wie etwa hg clone
das gesamte Pypy-Entwicklungsset. Auf halbem Weg entscheide ich, dass ich einen anderen Prozess ausführen möchte, etwa hg up
, sobald der erste zurückkehrt. Gibt es eine Möglichkeit, einen Befehl anzuhängen, der ausgeführt wird, wenn der Prozess zurückkehrt, ohne den Befehl/Prozess anzuhalten und ihn dann als verketteten Befehl neu zu starten? Befehl/Prozess?
Antwort1
Angenommen, Sie verwenden bash
und vorausgesetzt, Sie haben die zeitintensive Aufgabe in den Hintergrund der aktuellen Shell gestellt, entweder durch Ausführen longtask &
oder durch Starten der Aufgabe und anschließendes Drücken von CTRL+ Z, dann können Sie einen zusätzlichen auszuführenden Befehl hinzufügen, z. B.:
$ sleep 45 &
[1] 27722
$ wait 27722 && echo "Done"
[1]+ Done sleep 45
Done
$
Im obigen Beispiel echo "Done"
wird die erst nach Abschluss der wait
auf PID 27722 ausgeführt.
Ich habe noch keine Möglichkeit gefunden, diesen zusätzlichen Befehl in den Hintergrund zu stellen, damit Sie in derselben Shell weiterarbeiten können. Es muss aber eine Möglichkeit geben, dies zu tun – dies sollte Ihnen hoffentlich einen Anfang bieten.