Последовательные команды

Правильно ли я предполагаю, что когда ; соединяет две команды в строке, Bash всегда ждет, пока первая команда не выйдет перед выполнением второй команды? И аналогично, в сценарии оболочки, содержащем две разные команды на разных строках, Bash всегда ждет, пока команда в первой строке не выйдет перед выполнением команды во второй строке?

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

Кроме того, это разные строки в сценарии оболочки, эквивалентные отдельным строкам ; или && ?

2 Solutions collect form web for “Последовательные команды”

Вы правы, команды в скриптах выполняются по умолчанию по умолчанию.

Вы можете запустить команду в фоновом режиме, суффиксируя ее с помощью & (один амперсанд).

Команды в отдельных строках эквивалентны командам, объединенным ; по умолчанию. Если вы сообщите своей оболочке об отмене ненужных кодов выхода ( set -e ), скрипт выполнится так, как если бы все команды были объединены с && .

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

 commandA & commandB 

Если вы запустите это на интерактивном терминале (вместо сценария), вы можете использовать fg чтобы вернуть фоновая команда в фокус или jobs чтобы увидеть список фоновых задач.

  • ловушка для отладочного сигнала вызывалась дважды, прежде чем функция оболочки будет выполняться, когда функция «functrace» включена
  • bash: egrep & эхо-ошибка на линии
  • Совпадение шаблонов в сценарии Bash с именами файлов с нулевой загрузкой
  • Шаблон имени файла для файлов, которые еще не существуют
  • Значение дефиса как специального параметра?
  • bash script var не изменен после цикла
  • Имитировать ввод клавиатуры в bash OR stdin redirection, где stdin остается видимым
  • Почему bash думает: 016 + 1 = 15?
  • Как использовать две переменные в одном цикле
  • Есть ли способ сохранить вкладку разделенных значений в 2-й массив
  • напишите строку до ее выполнения, не записывая ее дважды
  • Использование инструкции if с помощью или для проверки аргументов для сценария оболочки
  • Linux и Unix - лучшая ОС в мире.