Как поставить команду в очередь после завершения другой команды?


9

Иногда я запускаю программу, которая занимает очень много времени, чтобы завершить ( emerge), а затем осознает, что мне нужно идти спать, а не ждать ее. Если бы я знал это в первую очередь, я бы побежал

program; halt

Однако теперь, когда я уже запустил программу, как я могу «запланировать» выключение компьютера после завершения этого процесса? Будет ли Ctrl+zтогда fg; haltбыть в порядке?

Ответы:


15

Да, это будет работать.

Если вы не уверены, вы можете проверить это с

  • sleep 15

  • Ctrl+z

  • fg; echo "it works"


2

Другой способ - просто ввести haltсвой терминал во время выполнения первой команды; до тех пор, пока первая команда не прочитает ввод в какой-то момент, она будет находиться в буфере терминала, и оболочка будет читать его, когда первая программа завершится


1

Используя waitкоманду

$ sleep 10 &
[1] 29703
$ wait 29703 && echo hello
[1]+  Done                    sleep 10
hello
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.