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?

Phunehehe
quelle

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"

mru
quelle
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

Michael Mrozek
quelle
1

Verwenden des waitBefehls

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
Gaius
quelle