Командная строка Linux, контроль выполнения команд: операторы "&&", "||", ";" и "&"
Приветствую!

Сегодня разбираем такие мощные инструменты командной строки Linux, как операторы контроля выполнения команд.

Предыдущие посты цикла

Если вы только начинаете изучать Linux, то настоятельно рекомендую ознакомиться с предыдущими материалами:

  1. Командная строка Linux, введение: типы команд, plain text, файловая система, shell prompt
  2. Командная строка Linux, навигация в системе и просмотр директорий: команды pwd, ls, cd
  3. Командная строка Linux, вывод и чтение содержимого: команды echo, cat, less
  4. Командная строка Linux, работа с файлами: команды touch, mkdir, cp, mv, rm
  5. Командная строка Linux, ссылки на файлы (links): команда ln
  6. Командная строка Linux, перенаправление ввода и вывода: операторы “>”, “<«, «|»

Введение

Операторы командной строки в Linux предоставляют возможность управлять выполнением команд и программ. Операторы &&, ||, ; и & позволяют контролировать порядок выполнения команд и выполнять их последовательно или параллельно.

Примеры использования

Оператор && (логическое И)

Пример 1:

BASH
mkdir mydir && touch mydir/myfile.txt && ls mydir
Нажмите, чтобы развернуть и увидеть больше

В этом примере с помощью оператора && создается каталог «mydir», затем с помощью команды touch создается пустой файл «myfile.txt» внутри каталога «mydir». Затем с помощью команды ls выводится содержимое каталога «mydir».

Пример 2:

BASH
ls mydir/

cd mydir/ && touch file1.txt && cp file1.txt file2.txt && rm file1.txt
Нажмите, чтобы развернуть и увидеть больше

В данном примере с помощью оператора && мы выполняем переход в созданную ранее директорию «mydir», затем файл «file1.txt» копируется в файл «file2.txt». Если операция копирования успешна, то с помощью команды rm удаляется файл «file1.txt».

Оператор || (логическое ИЛИ):

Пример 1:

BASH
cat file.txt || echo "Файл не найден"

touch file.txt && echo "Hello R4ven" > file.txt

cat file.txt || echo "Файл не найден"
Нажмите, чтобы развернуть и увидеть больше

В этом примере команда cat пытается вывести содержимое файла «file.txt». Если файл не существует, то с помощью оператора || выводится сообщение «Файл не найден». После создаётся файл «file.txt» с содержимым «Hello R4ven» и вновь выполняется предыдущая команда — результат выполнения изменился, блок после || не выполнился.

Пример 2:

BASH
ls images/ || mkdir images
Нажмите, чтобы развернуть и увидеть больше

В данном примере с помощью оператора || проверяется наличие каталога «images». Если каталог не существует, то с помощью команды mkdir создается каталог «images».

Оператор; (точка с запятой):

Пример:

BASH
touch file1.txt ; cp -v file1.txt directory/ ; rm -v file1.txt
Нажмите, чтобы развернуть и увидеть больше

В этом примере с помощью оператора ; последовательно выполняются три команды. Сначала с помощью команды touch создается пустой файл «file1.txt». Затем с помощью команды cp файл «file1.txt» копируется в каталог «directory», которого не существует, в следствии чего получаем ошибку. Но не смотря на это последняя команда всё равно выполняется: с помощью команды rm удаляется файл «file1.txt».

Оператор & (амперсанд):

Пример:

BASH
sleep 1000 & echo "Процесс запущен в фоновом режиме"
Нажмите, чтобы развернуть и увидеть больше

В данном примере команда sleep 1000 запускается в фоновом режиме с помощью оператора &. Команда sleep 1000 приостанавливает выполнение на 1000 секунд. В то же время, после запуска команды, выводится сообщение «Процесс запущен в фоновом режиме», позволяя продолжить работу в командной строке.

После отправки процесса в фоновое исполнение в терминал выводится номер процесса в локальной оболочке jobs id — [1] и номер (PID — process id) в общем системном списке — 6034.

Посмотреть список фоновых процессов текущего сеанса оболочки можно с помощью команды jobs, а список системных процессов с помощью команды ps:

BASH
jobs

ps
Нажмите, чтобы развернуть и увидеть больше

Чтобы вывести процесс из фонового режима в активный используется команда fg (foreground) с указанием jobs id:

BASH
fg 1
Нажмите, чтобы развернуть и увидеть больше

Для завершения процесса sleep отправьте команду прерывания с помощью Ctrl+C.

Подробнее тему работы с процессами в Linux я рассмотрю в отдельном посте в будущем.

Когда могут пригодится операторы контроля выполнения команд?

Операторы командной строки находят широкое применение в автоматизации задач и создании сценариев:

Послесловие

Сегодня мы ознакомились с операторами командной строки &&, ||, ; и &, которые предоставляют собой гибкие возможности управления порядком выполнения команд и программ в Linux. Правильное использование этих операторов позволяет автоматизировать задачи, обрабатывать ошибки и улучшить эффективность работы с командной строкой.

Благодарю за ваше внимание. Удачи)

Полезные источники

Авторские права

Автор: Иван Чёрный

Ссылка: https://r4ven.me/linux/komandnaya-stroka-linux-kontrol-vypolneniya-komand/

Лицензия: CC BY-NC-SA 4.0

Использование материалов блога разрешается при условии: указания авторства/источника, некоммерческого использования и сохранения лицензии.

Начать поиск

Введите ключевые слова для поиска статей

↑↓
ESC
⌘K Горячая клавиша