Оператор if
Часть раздела Основы путешествия по Terminal на Coddy. Урок 70 из 82.
До сих пор ваши скрипты выполняли каждую команду сверху вниз без принятия решений. Но что, если вы хотите, чтобы ваш скрипт выполнял разные действия в зависимости от определённых условий? Здесь на помощь приходит оператор if.
Инструкция 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 (меньше или равно). Для строк используйте = для проверки равенства и != для проверки неравенства.
Помни: всегда добавляй пробелы внутри скобок и заключай переменные в кавычки, чтобы избежать ошибок с пустыми значениями.
Задание
ЛегкоСоздайте shell-скрипт с именем check_score.sh, который использует оператор if для проверки результата теста.
Ваш скрипт должен:
- Начинаться со строки shebang (
#!/bin/bash) - Создавать переменную с именем
scoreсо значением75 - Использовать оператор if, чтобы проверить, больше ли результат или равен 70
- Если это так, вывести:
You passed! - Если это не так, вывести:
You failed.
Сделайте скрипт исполняемым и запустите его. Поскольку результат равен 75, вывод должен быть таким:
You passed!Подсказка: Не забудьте использовать
-geдля сравнения «больше или равно», добавить пробелы внутри квадратных скобок и завершить оператор if с помощьюfi.Здесь нет редактора файлов, поэтому создайте файл непосредственно из shell с помощью here-документа: введите
cat > check_score.sh << 'EOF', затем строки скрипта и последнюю строку, содержащую толькоEOF.
Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Каталоги
Создать каталогСкопировать каталогПереместить и переименовать каталогУдалить каталогИтог - Операции с каталогами7Содержимое файлов
Head и TailПодсчёт словКоманда sortКоманда uniqОсновы grepGrep с флагамиПовторение - Текстовый детектив10Проект анализатора логов
Обзор проектаПросмотр файла лога13Основы скриптинга оболочки
Что такое скрипт оболочкиСоздание и запуск скриптаПеременные в скриптахПользовательский ввод в скриптахОператор ifЦикл forЦикл whileИтог - Угадай число2Навигация
Вывод текущей рабочей директорииСписок файловСмена директорииАбсолютные и относительные путиДомашняя и корневая директорииИтог - Найди свой путь8Перенаправление
Стандартный выводПерезапись в файлДописывание в файлСтандартный вводСтандартная ошибкаПовторение - Сборщик логов11Права доступа
Понимание прав доступаЧтение прав доступаChmod с числамиChmod с символамиВладение файламиПовторение - Заблокируйте доступ14Проект скрипта резервного копирования
Обзор проектаПолучение пути к источнику3Файлы
Создать файлПрочитать файлСкопировать файлПереместить и переименовать файлУдалить файлПовторение - Операции с файлами6Символы подстановки и шаблоны
Звёздный символ подстановкиВопросительный символ подстановкиСкобочные символы подстановкиКомбинирование символов подстановкиПовторение - выборочные операции9Каналы
Что такое каналЦепочка двух командЦепочка нескольких командКанал с grepИтог - Конвейер данныхПотренируйтесь самостоятельно: Песочница Terminal