- •Лабораторная работа № 3 Изучение командного интерпретатора unix Shell
- •Структурные операторы shell
- •Команда test
- •Условный оператор if
- •Оператор выбора case
- •Оператор цикла for в цикле при каждой итерации переменной будет присвоен очередной элемент списка, над которым будут выполнены указанные команды.
- •Оператор цикла until с ложным условием
- •Приложение. Некоторые команды операционной системы unix
Структурные операторы shell
Shell, как и любой язык программирования, содержит набор операторов управления порядком выполнения команд, таких как if,case,while,until,for,breakи некоторые другие. Логические выражения, используемые в операторах управления, строятся на основе кодов завершения команд, при этом специальная командаtestпозволяет проверить разнообразные условия, такие, как существование и тип указанного файла, равенство или неравенство строковых и числовых выражений и т.п.
Команда test
Команда testпроверяет выполнение некоторого условия. С использованием этой встроенной команды формируются операторы выбора и цикла языка shell. Существует два возможных формата командыtest:
test условие или [ условие ]
Если вы будете использовать второй вариант shell будет распознавать команду testпо открывающей скобке "[", поэтомумежду скобками и содержащимся в них условием обязательно должны быть пробелы. Пробелы должны быть и между значениями и символом сравнения или операции. Не забывайте о противоположном требовании для операции присваивания значений переменным.
Имеется три типа проверок:
оценка числовых значений;
оценка типа файла;
оценка строк.
Для чисел синтаксис следующий:
NopM, гдеN,M–числовые переменные, операцияopпринимает следующие значения:
-
-eq
-ne
равно
не равно
-le
меньше или равно
-ge
больше или равно
-lt
меньше
-gt
больше
Синтаксис для файла:
opfilename, где операцияopможет принимать следующие значения:
-
-s
файл существует и не пуст
-f
обычный файл
-d
файлявляетсядиректорией
-w
имеется право на запись
-r
имеется право на чтение
Синтаксис для строк:
SopR, где операцияopможет принимать следующие значения:
-
=
эквивалентность
!=
неэквивалентность
opR, где операцияopможет принимать следующие значения:
-
-z
строка пустая
-n
строка непустая
Условный оператор if
Синтаксис: Пример:
if<условие> echo -n“Введите код города ”
then<список команд> read z
[elif<условие> then <список команд>] if [ $z= 423 ]
[else<альтернативный список команд >] thenecho“Владивосток“
fi elif [ $z = 495 ]
then echo “Москва“
elif [ $z = 815 ]
then echo “Мурманск“
else echo “Неверный код города”
fi
Несколько проверок могут быть объединены логическими операциями –a(and) и
-o(or).