Понимание базовых логических операций в Linux
Оболочка Linux предоставляет несколько способов комбинировать команды и условия с использованием логических операторов. На этом этапе вы узнаете о наиболее часто используемых логических операторах: &&
(И) и ||
(ИЛИ).
Сначала перейдем в наш проектный каталог:
cd ~/project
Начнем с создания нескольких тестовых файлов, которые мы будем использовать на протяжении всей лабораторной работы:
touch treasure_map.txt shield.txt kings_gauntlet.txt
Теперь создадим скрипт для демонстрации базовых логических операций. Мы будем использовать текстовый редактор nano
для создания файла с именем logic_basics.sh
:
nano logic_basics.sh
В этом скрипте мы будем использовать логические операторы для проверки существования двух файлов. Введите или вставьте следующий код в редактор:
#!/bin/bash
## This script demonstrates logical AND (&&) and OR (||) operators
## It checks if two specific files exist in the current directory
if [[ -f "treasure_map.txt" ]] && [[ -f "shield.txt" ]]; then
echo "Both files exist. Proceed with the mission."
else
echo "One or both files are missing. Abort the mission!"
fi
Оператор &&
означает "И" - оба условия должны быть истинными, чтобы общее условие было истинным.
Тест -f
проверяет, существует ли файл и является ли он обычным файлом (не директорией или другим специальным файлом).
Чтобы сохранить файл в nano, нажмите Ctrl+X
, затем нажмите Y
для подтверждения сохранения и Enter
для подтверждения имени файла.
Теперь сделаем скрипт исполняемым и запустим его:
chmod +x logic_basics.sh
./logic_basics.sh
Вы должны увидеть следующий вывод:
Both files exist. Proceed with the mission.
Попробуем другой пример, чтобы лучше понять логические операторы. Создайте новый скрипт с именем logical_or.sh
:
nano logical_or.sh
Добавьте следующее содержимое:
#!/bin/bash
## This script demonstrates the logical OR (||) operator
## It checks if at least one of two files exists
if [[ -f "treasure_map.txt" ]] || [[ -f "nonexistent_file.txt" ]]; then
echo "At least one file exists."
else
echo "Neither file exists."
fi
Оператор ||
означает "ИЛИ" - если хотя бы одно из условий истинно, то общее условие истинно.
Сохраните файл (Ctrl+X
, Y
, Enter
), сделайте его исполняемым и запустите:
chmod +x logical_or.sh
./logical_or.sh
Вывод:
At least one file exists.
Это демонстрирует, что даже несмотря на то, что файл "nonexistent_file.txt" не существует, условие все еще истинно, потому что файл "treasure_map.txt" существует.