Menu
Coddy logo textTech

Оператор if

Часть раздела Основы путешествия по Terminal на Coddy — урок 70 из 82.

Пока что ваши скрипты выполняют каждую команду сверху вниз без какого-либо принятия решений. Но что, если вы хотите, чтобы ваш скрипт выполнял разные действия в зависимости от определённых условий? Вот здесь и вступает в силу оператор if.

Оператор if позволяет вашему скрипту принимать решения. Он проверяет, истинно ли условие, и если да, выполняет блок кода. Вот базовая структура:

#!/bin/bash
age=18
if [ $age -ge 18 ]; then
    echo "You are an adult"
fi

Условие помещается внутри квадратных скобок с пробелами по краям. Ключевое слово then обозначает начало кода для выполнения, а fi (if, написанное задом наперёд) завершает конструкцию.

Вы также можете обработать случай, когда условие ложно, используя else:

#!/bin/bash
age=15
if [ $age -ge 18 ]; then
    echo "You are an adult"
else
    echo "You are a minor"
fi

Общие операторы сравнения для чисел включают -eq (равно), -ne (не равно), -gt (больше), -lt (меньше), -ge (больше или равно) и -le (меньше или равно). Для строк используйте = для равенства и != для неравенства.

Помните, всегда включайте пробелы внутри скобок и заключайте переменные в кавычки, чтобы избежать ошибок с пустыми значениями.

challenge icon

Задание

Легко

Создайте shell-скрипт с именем check_score.sh, который использует условный оператор if для оценки балла теста.

Ваш скрипт должен:

  1. Начинаться со строки shebang (#!/bin/bash)
  2. Создать переменную с именем score со значением 75
  3. Использовать условный оператор if для проверки, является ли балл большим или равным 70
  4. Если истинно, вывести: You passed!
  5. Если ложно, вывести: You failed.

Сделайте скрипт исполняемым и запустите его. Поскольку балл равен 75, ваш вывод должен быть:

You passed!

Подсказка: Не забудьте использовать -ge для сравнения «больше или равно», включить пробелы внутри квадратных скобок и завершить свой условный оператор fi.

Шпаргалка

Оператор if позволяет скриптам принимать решения на основе условий:

#!/bin/bash
age=18
if [ $age -ge 18 ]; then
    echo "You are an adult"
fi

Условие помещается внутри квадратных скобок с пробелами по бокам. Используйте then для обозначения начала блока кода и fi для завершения оператора.

Используйте else для обработки случаев, когда условие ложно:

#!/bin/bash
age=15
if [ $age -ge 18 ]; then
    echo "You are an adult"
else
    echo "You are a minor"
fi

Общие операторы сравнения:

  • Числа: -eq (равно), -ne (не равно), -gt (больше), -lt (меньше), -ge (больше или равно), -le (меньше или равно)
  • Строки: = (равенство), != (неравенство)

Всегда включайте пробелы внутри скобок и заключайте переменные в кавычки, чтобы избежать ошибок с пустыми значениями.

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы