Как администратор Linux, вы можете знать, насколько полезной может быть командная строка для выполнения различных действий, таких как установка приложения, установка системного патча и перезапуск службы.
Выполнение двух или более команд одновременно является еще более эффективным и экономит время.
В этом руководстве мы рассмотрим различные способы объединения и эффективного выполнения нескольких команд Linux.
ОПЕРАТОР | Синтаксис | ОПИСАНИЕ |
---|---|---|
Semicolon (;) |
command 1; command2 | Выполняет сначала команду 1, а затем команду 2 |
AND (&&) |
command 1 && command2 | Выполнение команды 2 только при успешном выполнении команды 1 |
OR (||) |
command 1 || command2 | Выполнение команды 2 только в случае неудачи команды 1 |
1) Объединение команд с помощью оператора “точка с запятой” (;)
Если вы хотите выполнить все команды независимо от того, не выполнились ли предыдущие, разделите их точкой с запятой.
В этом случае все команды выполняются одна за другой.
Общий синтаксис:
command 1; command 2; … command N
Например: Просто введите следующие три команды в одной строке, разделенные точкой с запятой.
Система покажет вам имя пользователя (whoami), проверит, в каком каталоге вы сейчас находитесь (pwd), и как долго работает система (uptime).
Как я уже сказал, если в цепочке команд произойдет сбой одной команды, остальные команды всегда будут выполняться, как показано ниже.
2) Запуск двух или более команд одновременно в Linux с помощью оператора логического AND (&&)
Если вы хотите, чтобы каждая команда выполнялась только после успешного выполнения предыдущей команды, объедините их с помощью оператора ‘&&’.
Общий синтаксис:
command 1 && command 2 && … command N
Например: Введите следующие две команды в одной строке, разделенные двумя амперсандами ( && ).
Система создаст каталог под названием ‘MyDirectory’, а затем перейдет в этот каталог.
mkdir MyDirectory && cd MyDirectory
Повторное выполнение вышеуказанной команды не даст результата, поскольку ‘MyDirectory’ уже существует.
Поэтому ‘команда 1’ возвращает ошибку.
Оператор ‘AND’ выполнит ‘команду 2’ только в случае успешного выполнения ‘команды 1’.
3) Выполнение нескольких команд Linux одновременно с помощью оператора логического OR (||)
Если вы хотите выполнить следующую команду только в случае неудачи предыдущей, объедините их оператором ‘||’.
Оператор ‘OR’ выполнит ‘команду 2’, только если ‘команда 1’ не выполнится или вернется ошибка.
Аналогично, если ‘команда 1’ выполнена успешно, ‘команда 2’ не будет выполнена.
Общий синтаксис:
command 1 || command 2 || … command N
Например: Здесь первая команда выполнена успешно, потому что мы вошли в каталог ‘cpufetch’, поэтому команда 2 ‘ls -lh’ не выполняется.
cd cpufetch || ls -lh
При повторном выполнении вышеуказанной команды ‘Команда 2’ выполнилась успешно, так как ‘Команда 1’ завершилась неудачно.
Итак, мы можем перечислить содержимое каталога ‘cpufetch’.
cd cpufetch || ls -lh bash: cd: cpufetch: Not a directory total 100K -rw-r--r-- 1 itisgood users 3.0K Jul 29 18:20 CONTRIBUTING.md -rwxr-xr-x 1 itisgood users 74K Jul 29 18:28 cpufetch -rw-r--r-- 1 itisgood users 2.4K Jul 29 18:20 cpufetch.1 drwxr-xr-x 1 itisgood users 98 Jul 29 18:20 doc -rw-r--r-- 1 itisgood users 1.1K Jul 29 18:20 LICENSE -rw-r--r-- 1 itisgood users 2.1K Jul 29 18:20 Makefile drwxr-xr-x 1 itisgood users 132 Jul 29 18:20 pictures -rw-r--r-- 1 itisgood users 5.0K Jul 29 18:20 README.md drwxr-xr-x 1 itisgood users 24 Jul 29 18:20 src
Заключение
В этом руководстве мы показали вам различные способы объединения и эффективного выполнения нескольких команд Linux с помощью оператора с запятой (;), логического оператора AND (&&) и логического оператора OR (||).
Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии!
см. также:
- 📦 Три различных способа дублирования установленных пакетов на нескольких машинах Linux
- 🐧 Как записать вывод команды top в файл
- 🐧 Как изменить или переименовать точку монтирования на Linux
- 🐧 Работа с именами файлов с пробелами в системах Linux
- Удаление пакетов, установленных в определенную дату/время в системах Linux