Книга: Краткое введение в программирование на Bash
case … in … esac
case … in … esac
Оператор case очень похож на if. Он отлично подходит для тех случаев, когда нужно проверить несколько условий, и вы не хотите для этого использовать несколько вложенных операторов if. Поясним на примере:
#!/bin/bash
x=5 # инициализируем х значением 5
# проверяем значение х:
case $x in
0) echo "значение х равно 0"
5) echo "значение х равно 5"
9) echo "значение х равно 9"
*) echo "значение неизвестно"
esac
Оператор case проверяет переменную х на равенство трем значениям. В приведенном примере, он сначала проверит, равен ли х нулю 0, затем равен ли он 5, затем равен ли он 9. И, если все проверки завершились неудачно, скрипт выведет сообщение, что значение x определить не получилось. Помните, что «*» означает «все», и в этом случае, «любое другое значение, помимо указанных явно». Если х имеет любое другое значение, отличное от 0, 5 или 9, то это значение попадает во категорию «*». При использовании сase каждое условие должно заканчиваться двумя точками с запятой.
Зачем нужно использовать case, когда вы можно использовать if? Ниже приведен пример эквивалентного скрипта, написанного с использованием if. Решение о том, что быстрее написать и легче прочесть, предлагается принять самостоятельно:
#!/bin/bash
x=5 # инициализируем х значением 5
if [ "$x" -eq 0 ]; then
echo "Значение х равно 0"
elif [ "$x" -eq 5 ]; then
echo "значение х равно 5"
elif [ "$x" -eq 9 ]; then
echo "значение х равно 9"
else
echo "Значение х определить не удалось"
fi
- The case Statement
- Пример A-21. Directory information
- Пример 10-25. Создание меню с помощью case
- 3.1.5 Case Sensitivity
- 8.1.3 Use Case Diagram
- 7 Case Study 1: Amoeba
- 8 Case Study 2: Mach
- 9 Case Study 3: Chorus
- 10 Case Study 4: DCE
- Оператор Case Else
- BPwin и Erwin. CASE-средства для разработки информационных систем
- Глава 10 CASE-СРЕДСТВА И ВИЗУАЛЬНОЕ МОДЕЛИРОВАНИЕ