Объединение двух или более команд в командной строке также называется «цепочкой команд». Мы покажем вам, как вы можете комбинировать команды в командной строке.
Вариант 1. Оператор с запятой (;)
Оператор с запятой (;) позволяет выполнять несколько команд подряд, независимо от того, успешно ли выполняется каждая предыдущая команда. Например, откройте окно терминала (Ctrl + Alt + T в Ubuntu и Linux Mint). Затем введите следующие три команды в одну строку, разделенные точкой с запятой, и нажмите Enter. Это даст вам список текущего каталога (
ls
), найдите каталог, в котором вы сейчас находитесь (
pwd
) и отобразите ваше имя пользователя (
whoami
) все сразу.
ls; pwd; whoami
Вам также не нужно помещать пробелы между точками с запятой и командами. Вы можете ввести три команды:
ls;pwd;whoami
Однако пробелы делают комбинированную команду более читаемой, что особенно полезно, если вы вставляете объединенную команду в сценарий оболочки.
Вариант второй: Логический И Оператор (&&)
Если вы хотите, чтобы вторая команда выполнялась только при успешной первой команде, отделите команды с логическим оператором И, который представляет собой два амперсанда (
&&
). Например, мы хотим создать каталог MyFolder, а затем перейти в этот каталог, если он был успешно создан. Итак, мы вводим следующее в командной строке и нажимаем Enter.
mkdir MyFolder && cd MyFolder
Папка была успешно создана, поэтому
cd
команда была выполнена, и теперь мы находимся в новой папке.
Мы рекомендуем чаще всего использовать логический оператор И, а не оператор с запятой (
;
). Это гарантирует, что вы не сделаете ничего катастрофического. Например, если вы запустите команду для изменения в каталог, а затем принудительно удалите все в этом каталоге рекурсивно (
cd /some_directory; rm -Rf *
), вы могли бы разрушить вашу систему, если изменение каталога не произошло. Не то, чтобы мы рекомендуем вам запустить команду, чтобы безошибочно удалить все файлы в каталоге за один раз.
Вариант третий: логический оператор ИЛИ (||)
Иногда вам может понадобиться выполнить вторую команду только в том случае, если первая команда недобиться успеха. Для этого мы используем логический оператор ИЛИ или две вертикальные полосы (
||
). Например, мы хотим проверить, существует ли каталог MyFolder (
[ -d ~/MyFolder ]
) и создать его, если это не так (
mkdir ~/MyFolder
). Итак, в командной строке введите следующую команду и нажмите Enter.
[ -d ~/MyFolder ] || mkdir ~/MyFolder
Убедитесь, что после первой скобки есть пробел, а перед вторым скобкой или первой командой, которая проверяет, существует ли каталог, не будет работать.
В нашем примере каталог MyFolder не существует, поэтому вторая команда создает каталог.
Объединение нескольких операторов
Вы также можете комбинировать несколько операторов в командной строке. Например, мы хотим сначала проверить, существует ли файл (
[ -f ~/sample.txt ]
). Если это так, мы печатаем сообщение на экран, говоря так (
echo “File exists.”
). Если нет, мы создаем файл (
touch ~/sample.txt
). Итак, в командной строке введите следующее: нажмите.
[ -f ~/sample.txt ] && echo “File exists.” || touch ~/sample.txt
В нашем примере файл не существует, поэтому он был создан.
-
A; B
- Запустить A, а затем B, независимо от успеха или отказа A
-
A && B
- Запустить B только в том случае, если A преуспел
-
A || B
- Запустить B только в случае сбоя A
Все эти методы объединения команд также могут использоваться в сценариях оболочки как на Linux, так и на Windows 10.
Вы также можете автоматически исправлять орфографию и опечатки при использовании «cd» в командной строке в Linux, чтобы избежать серьезных последствий при объединении команд.