Выполнить команду после завершения предыдущей

есть ли эмулятор терминала, который позволяет пользователю выполнять команду после того, как текущая команда завершается?

Я ищу программное обеспечение, а не объяснение того, как объединить команды (например, через && или ;). Просто мне часто хочется что-то сделать после того, как что-то закончено, но не планирую все заранее. Небольшой пункт контекстного меню "Выполнить после завершения текущей команды" открывает новое окно терминала, которое это было бы замечательно.

6
задан Journeyman Geek
11.05.2023 19:14 Количество просмотров материала 3249
Распечатать страницу

2 ответа

Я предполагаю, что вы используете bash CLI. Есть по крайней мере два способа сделать это, в зависимости от того, сколько вы хотите планировать заранее.

если ввести команду и введите, а затем решить, что вы хотите запустить какую-то другую команду, когда это закончится, вы можете сделать это:

001 $ date; sleep 10
002 Mon, Jan 25, 2016  3:08:35 PM
003 tty; date
004 $ tty; date
005 /dev/pty2
006 Mon, Jan 25, 2016  3:08:45 PM

Примечания:

  • номера строк ("001 ...") добавляются
  • строка 001: две команды выполняются последовательно из-за ;, второй длительные
  • строка 002: немедленный вывод 'date' в строке 001 для справки
  • строка 003: пользователь вводит дополнительные команды во время выполнения команды' sleep 'из строки 001, ввод повторяется, но не интерпретируется до завершения 'sleep'
  • строка 004: $ запрос появляется маркировка конец выполнения второй команды на линии 001, остальное повторно Эхо линии 003.
  • строка 005: вывод команды 'tty', введенной в строке 003
  • строка 006: вывод команды 'date', введенной в строке 003, по сравнению со строкой 002

однако, если вы заранее знаете, что хотите запустить что-то еще после начальной команды, но еще не знаете что, вы можете дождаться этого явно как:

006 $ date; sleep 20 &
007 Mon, Jan 25, 2016  3:13:52 PM
008 [1] 504840
009 $ wait 504840; tty; date
010 [1]+  Done                    sleep 20
011 /dev/pty2
012 Mon, Jan 25, 2016  3:14:12 PM

Примечания:

  • строка 006: 'date' для справки, а затем команда 'sleep' отодвигается на задний план с final &
  • строка 007: вывод 'date' в строке 006, для справки
  • строка 008: вывод & на строке 006, давая PID команды 'sleep'
  • строка 009: 'wait' будет ждать завершения процесса с именем PID
  • строка 010: 'sleep' в строке 006 завершается, затем' tty; date ' будет интерпретироваться
  • строка 011: вывод 'tty' в строке 009
  • строка 012: вывод 'date' в строке 009, по сравнению со строкой 007
0
отвечен Codex24 2023-05-13 03:02

вы можете ввести или вставить новую команду в окне оболочки, где выполняется текущая команда, и оболочка увидит ее и выполнит ее после завершения текущей команды.

дополнительный пункт меню не требуется.

например:

$ command1
command2
$ $

(выводится повторяющееся приглашение, так как оболочка предложит вам после выполнения command1 перед началом command2).

обратите внимание, что если вы убиваете command1 С kill, тогда command2 выполняется сразу, но если вы типа Сочетания Клавиш CTRL-C И в этой оболочке, в этом прервется и команды.

0
отвечен sds 2023-05-13 05:19

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх