Thank you for reading this post, don't forget to subscribe!
Для одновременного запуска более одной команды мы можем использовать специальный символ & (амперсанд).
Другое использование & — это запуск команд в фоновом режиме.
В этом случае, однако, вы должны использовать & один раз в конце команды или скрипта. Например:
1 |
# [команда или скрипт] & |
Использование & (амперсанд) для одновременного запуска команд
Чтобы запустить 2 команды одновременно, используйте специальный символ & между двумя или более командами.
Синтаксис:
1 |
# command1 & command2 & command3 .. |
Например, если вы хотите запустить 3 команды «uname -a», «pwd» и «ls» одновременно, вы можете использовать:
1 |
# hostname & pwd & date |
Вывод будет похож на что-то подобное:
1 2 3 4 5 6 7 8 |
# hostname & pwd & date [1] 3253 [2] 3254 /root geeklab Sat Jan 18 05:46:07 UTC 2020 [1]- Done hostname [2]+ Done pwd |
При использовании одиночного амперсанда, даже если команда не выполняется, запускаются следующие команды.
Использование && (двойной амперсанд) для одновременного запуска команд
Если вы хотите, чтобы второе задание / команда ожидало завершения первого задания / команды, используйте символ && между командами.
Таким образом, если во время исполнения в первой команде произойдет какая-либо ошибка, она остановится.
Например:
1 |
# hostname && pwd && date |
Пример вывода:
1 2 3 4 |
$ hostname && pwd && date geeklab01 /root Sat Jan 18 12:23:34 IST 2020 |
Давайте попробуем использовать неправильную команду и посмотрим, будут ли выполнены следующие команды:
1 2 3 |
$ hostname && wrngcmd && date geeklab01 -bash: wrngcmd: command not found |
Как показано выше, последняя команда «date» не была выполнена, т.к. перед ней команда не было выполнена.