Операционная система UNIX. Руководство пользователя

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


Оператор if ... then

Команда if говорит shell программе, что нужно выполнить последовательность команд после then, если последняя команда в списке команд конструкции if выполнилась успешно. Конструкции if заканчиваются ключевым словом fi.

Общий формат конструкции if:

if<CR>

command_1<CR>

. . . last command<CR>

then<CR>

command_1<CR>

. . . last command<CR>

fi<CR>

Например, shell программа search демонстрирует применение конструкции if ... then. Программа search использует команду grep для поиска слова в файле. Если grep выполнилась успешно, то программа отображает найденное слово. Экран будет выглядеть следующим образом:

$ cat search<CR>

echo Type in the word and the file name. read word file if grep $word $file then echo $word is in $file fi $

Эта программа отображает вывод команды grep. Если вы хотите сохранить ответ системы на команду grep в вашей программе, то воспользуйтесь файлом /dev/null, изменив командную строку if на следующую:



if grep $word $file > /dev/null<CR>

Теперь выполните команду search. Она ответит только сообщением, указанным после команды echo.

Конструкция if ... then ... else может исполнять альтернативный набор команд, стоящий после else, в случае, если последовательность if является ложью. Формат этой конструкции следующий:

if<CR>

command_1<CR>

. . . last command<CR>

.linthen<CR>

command_1<CR>

. . . last command<CR>

else<CR>

command_1<CR>

. . . last command<CR>

fi<CR>

С помощью этой конструкции вы можете усовершенствовать программу search, так что она будет сообщать вам и найденное слово и то, что слово не найдено. В этом случае программа search будет выглядеть следующим образом:

$ cat search<CR>

echo Type in the word and the file name. read word file if grep $word $file > /dev/null then echo $word is in $file else echo $word is NOT in $file fi $

Команда test

Команда test используется для организации цикла. Она проверяет на истинность определенные условия и полезна для организации условных конструкций. Если условие истинно, то цикл будет продолжен. Если условие ложно, то цикл завершится и будет выполняться следующая команда. Некоторые примеры использования команды test:



Содержание раздела