🐧 Как выполнить несколько команд одновременно в системах Linux

Автор: | Декабрь 3, 2021

Как администратор 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 (&&)

Если вы хотите, чтобы каждая команда выполнялась только после успешного выполнения предыдущей команды, объедините их с помощью оператора ‘&&’.

🐧 В чем разница между & (амперсанд) и && (двойной амперсанд) при одновременном выполнении команд в Linux

Общий синтаксис:

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 (||).

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии!

см. также:

 

Поделитесь статьей:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *