Книга: Краткое введение в программирование на 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

Оглавление книги


Генерация: 0.814. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз