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

if<ENTER>

команда _1 <ENTER>

последняя команда <ENTER>

then<ENTER>

команда _1 <ENTER>

последняя команда <ENTER>

fi<ENTER>

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

cat search<ENTER>

экран будет выглядеть следующим образом:

echo Введите искомое слово и имя файла, в котором будем искать

Read word

Read file

if grep $word $file

then echo $word is in $file

fi

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

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

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

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

if<ENTER>

команда_1 <ENTER>

последняя команда <ENTER>

then<ENTER>

команда _1 <ENTER>

последняя команда <ENTER>

else<ENTER>

команда _1 <ENTER>

последняя команда <ENTER>

fi<ENTER>

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

echo Введите искомое слово и имя файла, в котором будем искать

Read word

Read file

if

grep $word $file > /dev/null

Then

echo $word is in $file

Else

echo $word is NOT in $file

fi

Для команд существуют логические операции:

Логическое и: команда && команда

Логическое или: команда || команда

Логическое не:! команда

Безусловная передача управления

Команда break безусловно останавливает выполнение любого цикла, в котором он встречается и передает управление команде, следующей после ключевых слов done или fi.

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

Отладка программы

Для нахождения и корректировки ошибок вам могут понадобиться две опции команды sh:

Sh -v shellprogramname

(печатает вводимые shell строки, как если бы они были прочитаны системой);

Sh -x shellprogramname

(печатает команды и их аргументы по мере их выполнения).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: