Введение
В этой статье мы узнаем, как запускать несколько команд одновременно в Linux. Каждый оператор имеет свои преимущества при разделении команд. Этот туториал поможет немного улучшить то, как мы выполняем команды и скрипты авторской оболочки.
Операционная система Linux предлагает простой интерфейс командной строки для управления системой. Существуют оболочки, такие как Bash, CSH и Zsh, которые принимают команды от пользователя и направляют их в ядро. Команда используется для выполнения некоторых функций в системе. Мы также можем указать несколько оболочек одновременно и выполнять их одну за другой.
Существует три различных варианта использования операторов-разделителей. В следующем разделе мы рассмотрим их подробно.
Используйте точку с запятой (;)
Точки с запятой (;) разделяют команды, чтобы последующие команды выполнялись независимо от состояний выхода предыдущих. Используйте этот параметр, чтобы убедиться, что команда выполняется после завершения предыдущей.
Синтаксис:
command1; command2; commandN
Пример:
date; pwd; whoami
Sun Aug 7 03:51:00 UTC 2022
/home/noviello
noviello
Даже если вторая команда завершается ошибкой из-за ошибки авторизации, третья команда все равно выполняется в следующих командах:
date; touch /root/a.txt; whoami
Используйте логический оператор И (&&)
После успешного выполнения предыдущей команды будет выполнена и следующая команда. Логический оператор И (&&) проверяет статус выхода предыдущей команды.
Однако, если приведенная выше команда завершилась ненулевым статусом выхода, выполнение здесь остановится. В этом случае никакие последующие команды выполняться не будут.
Синтаксис:
command1 && command2 && commandN
Пример:
mkdir ./backups && cd ./backups
Последняя команда завершится ошибкой, если по какой-либо причине не удалось выполнить первую команду:
mkdir /root/backups && cd /root/backups
mkdir: cannot create directory ‘/root/backups’: Permission denied
Используйте логический оператор ИЛИ (||)
Логическое условие ИЛИ (||) проверяет статус выхода предыдущей команды и выполняет следующую команду, только если предыдущая команда не удалась.
Синтаксис:
command1 || command2 || commandN
Вы можете использовать эту конструкцию в сценариях оболочки, чтобы определить, доступен ли файл или команда. Например, в скрипте резервного копирования можно проверить, /usr/bin/mysqldump
существует оно или нет, а если нет, то можно напечатать сообщение или завершить процесс:
[ -s /usr/bin/mysqldump ] || echo "command not found"
Используйте его для проверки команды или файла, которых нет в вашей системе. Это полезно для скриптов bash, которые создают файлы, если они отсутствуют. Вы также можете остановить выполнение скрипта, если необходимые файлы отсутствуют:
[ -s /usr/bin/not_a_cmd ] || echo "command not found"
Вывод
В этой статье мы рассмотрим, как одновременно запускать несколько команд в Linux. Мы также рассмотрим различные операторы, используемые для отделения команд друг от друга. Каждый оператор влияет на способ выполнения команды, и у каждого есть свои преимущества. Этот учебник предоставит некоторую полезную информацию для всех, кто заинтересован в улучшении своих навыков выполнения команд или написания сценариев оболочки.