Команды очереди при выполнении одной команды

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

Я знаю, что есть возможность нажать Ctrl + Z, а затем отправить fg && otherCommand . Однако это имеет два основных недостатка:

  1. Он не работает, если первая команда представляет собой композицию из разных команд ( command1 && command2 или command1; command2 ), потому что последующие команды первой переданной строки не выполняются.
  2. Выполнение первой команды останавливается при вводе следующей команды. С этими неприятными 30-секундными командами время, затрачиваемое на ввод следующей команды, составляет значительную часть оставшегося времени выполнения, если не все.

Я также знаю, что вы можете просто ввести следующую команду во время выполнения одной команды, а затем нажать Enter, чтобы отправить ее. Однако это также имеет два основных недостатка:

  1. Это не работает, если команда, которую вы выполняете, сначала читает из stdin .
  2. Если команда, которую вы выполняете, сначала производит вывод, вы не можете видеть, что вы ввели.

Есть ли быстрый способ поставить в очередь больше команд во время выполнения одной команды, возможно, используя специальный эмулятор терминала или несколько терминалов?

  • Использование параметров в скрипте
  • Внутри скрипта bash, выполняющего ssh, автоматически добавьте хост только для определенных известных ключей RSA
  • Копирование файлов с несколькими расширениями
  • Сигнал, который не получен с помощью скрипта, выполняется с использованием sh -c
  • синхронизировать файлы рекурсивно между двумя папками, где файлы меньше 24 часов
  • Я пытаюсь написать сценарий bash для преобразования hex в base64
  • Как удалить дубликаты файлов с помощью bash
  • Должны ли скрипты, требующие sudo fail, если у них их нет, или использовать sudo и prompt?
  • 3 Solutions collect form web for “Команды очереди при выполнении одной команды”

    Вы, скорее всего, хотите:

    wait $pid

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

    Предполагая, что вы не можете открыть второй терминал / соединение, вы можете запустить сеанс в терминальном мультиплексоре, таком как screen или tmux .

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

    Это также помогает сохранить сессию (ы) в живых, если соединение / эмулятор прерывается по какой-либо причине.

    Нажмите Ctrl + Z и сразу запустите bg . Это заставляет текущую команду продолжать работать в фоновом режиме. Затем вы можете использовать fg && otherCommand для планирования otherCommand после текущей.

    Чтобы сделать это проще, я сконфигурировал Ctrl + Z в своей оболочке, чтобы запустить bg когда я нажимаю его на пустой командной строке. См. В zsh, как я могу быстрее отказаться от процесса переднего плана? и Как отправить приложения командной строки прямо на задний план? ; Я не проверял, позволяют ли современные версии bash сделать то же самое.

    Interesting Posts

    Mistery с DHCP VirtualBox и CentOS 7

    Как установить cctrlapp на debian?

    Как вывести количество всех файлов с «tty» в имени файла в каталоге Linux, где хранятся файлы на системных устройствах

    Установка afp share через fstab приводит к сбоям в загрузке, но работает после загрузки

    могу ли я настроить SSH, чтобы он не использовал шифрование?

    Как удалить ~ обозначенные файлы из моего каталога с помощью команды linux?

    Создание собственного «изображения BBB» для его установки в нескольких BBB?

    Postfix не проверяет адрес «От:» с помощью sender_login_maps

    `stat -f` показывает тип файловой системы ext4 как ext2 / ext3

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

    Можем ли мы убить inetd, если ничего не использовать / нет config?

    поиск и увеличение значений между символом второй тильды и символом третьей тильды в каждой строке файла txt

    Sun Blade 150 с Solaris 8 прекратил загрузку с «отсутствующей или плохой парольной записи для <root>»

    Сообщения об ошибках на физическом сервере не отображаются в сеансах шпаклевки

    Слишком большое использование swap?

    Linux и Unix - лучшая ОС в мире.