По умолчанию команды в bash выполняются последовательно, при необходимости, можно обеспечить параллельное выполнение команд.
Запуск команд в фоновом режиме
Для параллельного выполнения команд можно использовать запуск команд в фоне, со следующим синтаксисом
1 | command & |
Запущенная команда будет выполнятся в фоновом процессе, при этом скрипт сможет продолжить свое выполнение.
В качестве примера работы, приведен скрипт ниже, не очень оптимальный, но показывающий работу комбинации команд
1 2 3 4 5 6 | sleep 5 && echo 1 & sleep 6 && echo 2 & sleep 7 && echo 3 & sleep 8 && echo 4 & sleep 9 && echo 5 & wait |
если выполнять все команды последовательно, скрипт выполнится за 35 секунд, но за счет использования параллельного выполнения, время работы скрипта составило 9 секунд
1 2 3 4 5 6 7 8 9 10 | time ./test.sh 1 2 3 4 5 real 0m9.007s user 0m0.014s sys 0m0.003s |
Перенаправление вывода
Для параллельного выполнение команд, можно использовать пайпы. Когда вывод одной команды, перенаправляется на вход другой, при этом процессы выполняются параллельно
1 | command1 | command2 | command3 |