Условные конструкции (if, else, elif)
Реализуйте логику принятия решений в скриптах с помощью конструкций «if», «else» и «elif» для динамического поведения.
«Условные конструкции (if, else, elif)» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Зачем нужны условные конструкции
При написании скриптов Bash иногда нужно, чтобы скрипт принимал решения. Представьте скрипт, который выполняет разные действия в зависимости от ввода пользователя или наличия файла.
Здесь пригодятся условные конструкции! Они позволяют скрипту выполнять определённые блоки кода только при выполнении заданных условий.
Базовая конструкция «if»
Самая простая условная конструкция — это оператор if. Он проверяет условие и, если оно истинно, выполняет блок команд.
Синтаксис:
if [ condition ]then# commands if condition is truefi(обозначает конец блокаif)
Ваш первый скрипт с «if»
Рассмотрим базовую условную конструкцию if в действии. Этот скрипт проверяет, больше ли число 5.
Попробуйте изменить значение NUMBER и запустить скрипт!
#!/bin/bash
NUMBER=10
if [ $NUMBER -gt 5 ]
then
echo "The number $NUMBER is greater than 5."
fi
echo "Script finished."Создание условий проверки
Часть [ condition ] имеет ключевое значение. На самом деле это команда с именем test или её псевдоним [.
Также можно использовать [[ condition ]] — более продвинутый вариант с улучшенным синтаксисом, предотвращающий проблемы с разделением слов. Для начинающих обычно используется [ ].
- Всегда ставьте пробелы вокруг скобок и операторов.
- Переменные внутри
[ ]обычно следует заключать в кавычки (например,"$VARIABLE"), чтобы избежать ошибок при пустых значениях или значениях из нескольких слов.
Сравнение чисел
При сравнении чисел в Bash используются специальные операторы:
-eq: равно-ne: не равно-gt: больше-ge: больше или равно-lt: меньше-le: меньше или равно
Они используются внутри [ ] или [[ ]].
Сравнение строк
Для сравнения текста (строк) используются другие операторы:
==или=: равно (==предпочтителен в[[ ]])!=: не равно-z "$STRING": истина, если строка пустая (нулевой длины)-n "$STRING": истина, если строка не пустая (ненулевой длины)
Не забывайте заключать строковые переменные в кавычки!
Конструкция «if-else»
Что делать, если при истинном условии нужно выполнить один блок кода, а при ложном — AND другой?
Для этого предназначена конструкция if-else! Она предоставляет скрипту альтернативный путь выполнения.
Синтаксис:
if [ condition ]then# commands if trueelse# commands if falsefi
«if-else» в действии
Этот скрипт запрашивает число и сообщает, является ли оно положительным. В нём используется конструкция if-else.
Запустите его несколько раз с разными значениями (например, 5, -3 и 0).
#!/bin/bash
read -p "Enter a number: " NUM
if [ "$NUM" -gt 0 ]
then
echo "$NUM is a positive number."
else
echo "$NUM is not a positive number (it's zero or negative)."
fiНесколько вариантов с «elif»
Если возможных результатов больше двух, можно использовать elif (сокращение от «else if»). Это позволяет последовательно проверять несколько условий.
Синтаксис:
if [ condition1 ]then# commands if condition1 is trueelif [ condition2 ]then# commands if condition1 is false AND condition2 is trueelse# commands if all conditions are falsefi
Расширенная логика принятия решений
Создадим скрипт, который классифицирует возраст пользователя с помощью if, elif и else. Так скрипт обрабатывает несколько вариантов.
Обратите внимание на использование && для объединения условий в [[ ]] (логическое AND).
#!/bin/bash
read -p "Enter your age: " AGE
if [[ $AGE -lt 13 ]]
then
echo "You are a child."
elif [[ $AGE -ge 13 && $AGE -lt 18 ]]
then
echo "You are a teenager."
elif [[ $AGE -ge 18 && $AGE -lt 65 ]]
then
echo "You are an adult."
else
echo "You are a senior citizen."
fiПроверка условий
Рассмотрим следующий скрипт Bash:
#!/bin/bash
SCORE=85
if [ $SCORE -lt 60 ]
then
echo "Fail"
elif [ $SCORE -lt 80 ]
then
echo "Pass"
else
echo "Distinction"
fiИтоги: условные конструкции
Отличная работа! Вы научились делать скрипты Bash более интеллектуальными с помощью условных конструкций.
- Оператор
ifвыполняет код, если условие истинно. elseпредоставляет альтернативный путь, если условиеifложно.elifпозволяет последовательно проверять несколько условий.- Не забывайте использовать подходящие операторы (
-eqдля чисел,==для строк) и всегда завершать блокиifс помощьюfi.
Эти инструменты необходимы для создания динамичных и интерактивных скриптов!
Часто задаваемые вопросы
Урок «Условные конструкции (if, else, elif)» бесплатный?
Да — полный текст урока «Условные конструкции (if, else, elif)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Условные конструкции (if, else, elif)»?
Реализуйте логику принятия решений в скриптах с помощью конструкций «if», «else» и «elif» для динамического поведения. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Условные конструкции (if, else, elif)»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Первый скрипт Bash и шебанг
- Переменные и пользовательский ввод
- Условные конструкции (if, else, elif)
- Работа с массивами в Bash