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

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

2 ответа2

0

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

Никаких дополнительных пунктов меню не требуется.

Например:

$ command1
command2
$ $

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

Обратите внимание, что если вы убьете command1 с помощью kill, то command2 выполняется сразу же, но если вы введете Ctrl-C в этой оболочке, это прервет обе команды.

0

Я предполагаю, что вы используете 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: немедленный вывод из «даты» в строке 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: «сон» в строке 006 завершается, затем «tty; дата "будет интерпретироваться
  • Строка 011: вывод tty в строке 009
  • Строка 012: вывод «date» в строке 009, сравните со строкой 007

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .