Вы можете использовать подстановку команд bash $(command)
следующим образом:
$(command1 ; command2) &
Обратите внимание, что stdin и stdout по-прежнему связаны с родительским процессом, и перенаправление, по крайней мере, stdout может быть сложным. Таким образом, в качестве альтернативы вы можете объединить команды в одну строку, а затем передать строку bash
команде, чтобы породить новый процесс, который будет обрабатывать выполнение.
bash -c "command1 ; command2" &
Это особенно полезно в скрипте bash, когда вам нужно запустить несколько команд в фоновом режиме.
Эти два утверждения должны быть эквивалентны. Баш процесс икру в обоих случаях для обработки команды (цепь команд) и&
в конце отсоединяет исполнения.
На этот раз вы можете добавить &>/dev/null
перед &
в конце команды, чтобы перенаправить как минимум стандартный вывод и избежать вывода на стандартный вывод родительского процесса. Что-то вроде:
bash -c "command1 ; command2" &>/dev/null &
()
чтобы окружить команду.