0Pricing
DevOps Bootcamp · Урок

Условные конструкции (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 true
  • fi (обозначает конец блока 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 true
  • else
  • # commands if false
  • fi

«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 true
  • elif [ condition2 ]
  • then
  • # commands if condition1 is false AND condition2 is true
  • else
  • # commands if all conditions are false
  • fi

Расширенная логика принятия решений

Создадим скрипт, который классифицирует возраст пользователя с помощью 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 — локальная установка не требуется.

Все уроки этого курса

  1. Первый скрипт Bash и шебанг
  2. Переменные и пользовательский ввод
  3. Условные конструкции (if, else, elif)
  4. Работа с массивами в Bash
← Назад к DevOps Bootcamp