Сценарии оболочки (shell scripts) - стр.3

Условные операторы

В оболочке bash действуют два вида условных операторов:
• Оператор ветвления - if
• Оператор выбора - case

Эти операторы используются для организации ветвлений в скриптах shell, когда в зависимости от заданных условий и значений переменных выбирается то или иное действие.

Условный оператор if

if [выражение ] then
список команд
elif [выражение2]
then
список команд
else
список команд
fi

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

Пример 1.
if [ $1 -lt 10 ]
then
echo "Введите число, большее 10"
else
echo "Вы ввели значение $1"
fi


Пример 2.
if [-f $1]
then
echo "объект $1 является файлом"
elif
[-d $1]
then
echo "объект $1 является каталогом"
else
echo "$1 не является ни файлом, ни каталогом"
fi


Оператор выбора case

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

case string1 in
str1)
команды;;
str2)
команды;;
esac

Выполняется данный оператор следующим образом: Строка stringl сравнивается с заданными шаблонами stii и str2. В случае совпадения с одним из этих значений, выполняется соответствующий ему блок кода. Если ни одно из заданных значений str1 и str2 не является аналогом строки stringl, выполняются команды, указанные после звездочки (*), так как данный символ обозначает "любую строку".

Пример:
echo "Меню: "
echo "1. Завтрак"
echo "2. Обед"
echo "3. Ужин"
echo "Сделайте свой выбор"
read choice
case choice in
1) echo "На завтрак - кукурузные хлопья с молоком";;
2) echo "На обед - жареный рис с овощами";;
3) echo "На ужин - шпинат, запеченый с сыром";;
*) echo "Пожалуйста, введите значение от 1 до 3"
esac

назад к оглавлению вперед

Rus. Open Source company, г. Саратов
ул. Орджоникидзе, 156, офис 203
тел: 8 (8452) 57-84-41
e-mail: info@rus_opensource.com

Главная | Обзоры | О разном
Карта сайта

Учебная литература:

Введение в Linux
Основы JAVA
Архивы

© 2013 opensourcerules.net