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

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

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

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

  • добавление переменной в файл в Bash не работает
  • Как узнать, длится ли один час через несколько сценариев оболочки?
  • Bash: что такое присвоение `a =` определено?
  • Быстрая ссылка для быстрого поиска определенного символа
  • Как сохранить строку «*» в переменной в unix / bash?
  • Bash: Почему не * возвращает пустую строку в случае отсутствия соответствия
  • Ошибка: команда не найдена
  • Почему эта довольно простая «если» не работает?
  • 2 Solutions collect form web for “Последовательные команды”

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

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

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

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

     commandA & commandB 

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

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