Wie stelle ich einen Befehl in die Warteschlange, um ihn auszuführen, nachdem ein anderer Befehl beendet wurde?


9

Manchmal starte ich ein Programm, dessen Fertigstellung sehr lange dauert ( emerge), und merke dann, dass ich ins Bett gehen sollte, anstatt darauf zu warten. Wenn ich das überhaupt wüsste, würde ich rennen

program; halt

Wie kann ich jedoch, nachdem ich das Programm bereits gestartet habe, das Herunterfahren des Computers "planen", wenn dieser Vorgang abgeschlossen ist? Wäre Ctrl+zdann fg; haltOK?

Antworten:


15

Ja, das würde funktionieren.

Wenn Sie sich nicht sicher sind, können Sie es mit testen

  • sleep 15

  • Ctrl+z

  • fg; echo "it works"


2

Eine andere Möglichkeit besteht darin, einfach haltIhr Terminal einzugeben, während der erste Befehl ausgeführt wird. Solange der erste Befehl irgendwann keine Eingabe liest, befindet er sich im Puffer des Terminals und die Shell liest sie, wenn das erste Programm endet


1

Verwenden des waitBefehls

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.