Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная ОС_3.doc
Скачиваний:
18
Добавлен:
13.03.2016
Размер:
117.25 Кб
Скачать

Структурные операторы shell

Shell, как и любой язык программирования, содержит набор операторов управления порядком выполнения команд, таких как if,case,while,until,for,breakи некоторые другие. Логические выражения, используемые в операторах управления, строятся на основе кодов завершения команд, при этом специальная командаtestпозволяет проверить разнообразные условия, такие, как существование и тип указанного файла, равенство или неравенство строковых и числовых выражений и т.п.

  1. Команда 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

строка непустая

  1. Условный оператор 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).