Главная страница

Ответы по экзамену операционные системы. Для удобства


Скачать 191.51 Kb.
НазваниеДля удобства
АнкорОтветы по экзамену операционные системы
Дата29.10.2022
Размер191.51 Kb.
Формат файлаdocx
Имя файлаOtvety_po_OS.docx
ТипДокументы
#761250
страница8 из 14
1   ...   4   5   6   7   8   9   10   11   ...   14

Какие операторы ветвления применяются в командных сценариях ОС Unix?


Оператор if

Оператор if используется для ветвления сценария в зависимости от условий. Конструкция оператора выглядит следующим образом:

if УСЛОВИЕ

then

СЦЕНАРИЙ1

elif УСЛОВИЕ2

then

СЦЕНАРИЙ2

else

СЦЕНАРИЙ3

fi

Всю приведенную конструкцию можно записать в одну строку, заменив символы перехода на следующую строку символами ";".

Условиями для оператора if являются результаты выполнения команд: возвращаемый программой 0 свидетельствует об успешном выполнении, а ненулевое значение символизирует об ошибке (сценарий также может возвращать значения с помощью оператора return). Соответственно, возвращаемый командной 0 является положительным условием, а ненулевое значение – отрицательным условием.

Логика работы оператора следующая. Сценарий СЦЕНАРИЙ1 будет выполнен в том случае, если выполняется УСЛОВИЕ1. Иначе, если выполняется УСЛОВИЕ2, то будет выполнен СЦЕНАРИЙ2. Если ни одно из условий не выполняется, то будет выполнен СЦЕНАРИЙ3. Блоки elif и else необязательны.

В следующем примере утилита test вернет положительное значение, если по указанному пути расположен файл:

if test -f /bin/sh

then

echo "Программа /bin/sh найдена"

fi

Ключ -fслужит для проверки факта, существует ли файл по заданному пути и является ли он обычным файлом (не каталогом, не специальным файлом устройства и так далее). Если файл существует, то утилита test вернет нулевое значение, что является положительным условием для выполнения оператором if сценария.

Утилита test наиболее часто используется в качестве условия для операторов ветвления, поэтому для упрощения записи условий доступен краткий синоним команды – "[" (квадратная скобка). Заключительный аргумент "]" игнорируется этой командой, поэтому доступна следующая форма записи предыдущего примера:

if [ -f /bin/sh ]

then

echo "Программа /bin/sh найдена"

fi

Не следует забывать, что пробелы возле квадратных скобок обязательны, так как название команды (в данном случае test, а точнее – ее синонима "[") должно быть отделено пробелом от аргументов.

Наиболее часто используемые условия с использованием утилиты test приведены в таблице 1.

Таблица 1

Часто используемые условия

Условие (аргументы утилиты test)

Тип операндов

Смысл условия

[ "$var1" = "значение" ]

Строки

Строки одинаковы

[ "$var1" != "значение" ]

Строки

Строки неодинаковы

[ "$var1" -eq 0 ]

Целые числа

Число равно нулю

[ "$var1" -ge 0 ]

Целые числа

Число неотрицательное

[ "$var1" -gt 0 ]

Целые числа

Число положительное

[ "$var1" -le 0 ]

Целые числа

Число меньше нуля либо равно нулю

[ "$var1" -lt 0 ]

Целые числа

Число отрицательное

["$var1" -ne 0 ]

Целые числа

Число не равно нулю

[ -d file ]

Путь к файлу

Файл file является директорией

[ -f file ]

Путь к файлу

Файл file является обычным файлом

Продолжение таблицы 1

[ -s file ]

Путь к файлу

Файл file ненулевого размера

[ -r file ]

Путь к файлу

Имеется доступ на чтение файла file

[ -w file ]

Путь к файлу

Имеется доступ на запись в файл file

[ -x file ]

Путь к файлу

Файл file является исполняемым


Оператор case

Конструкция case используется для реализации множественного выбора.

case ЗНАЧЕНИЕ

in

ЗНАЧЕНИЕ1) СЦЕНАРИЙ1;;

ЗНАЧЕНИЕ2) СЦЕНАРИЙ2;;

*) СЦЕНАРИЙ3;;

esac

ЗНАЧЕНИЕ последовательно сравнивается со значениями ЗНАЧЕНИЕ1, ЗНАЧЕНИЕ2 и если найдено равенство, то выполняется соответствующий сценарий.

Например, следующий сценарий выведет информацию о количестве переданных аргументов:

case $# in

echo "нет аргументов" ;;

echo "один аргумент" ;;

echo "два аргумента" ;;

echo "три аргумента" ;;

*) echo "больше трех аргументов" ;;

esac


  1. 1   ...   4   5   6   7   8   9   10   11   ...   14


написать администратору сайта