Условные операторы. оператор if … then

      Комментарии к записи Условные операторы. оператор if … then отключены

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

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

if

команда _1

последняя команда

then

команда _1

последняя команда

fi

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

cat search

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

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

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

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

if

команда_1

последняя команда

then

команда _1

последняя команда

else

команда _1

последняя команда

fi

С помощью этой конструкции вы можете усовершенствовать программу 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

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

Контрольные вопросы

1. Перечислите основные функции командного интерпретатора Shell.

2. Как осуществляется вход и выход из оболочки?

3. Расскажите о метасимволах используемых в Shell и опишите их основные функции.

4. Опишите механизм создания и запуска программ в Shell.

5. Расскажите о позиционных и специальных параметрах.

6. Расскажите об именованных параметрах, опишите механизм их создания.

7. Как удалить именованные переменные?

8. Как изменить значение зарезервированным переменным?

9. Опишите известные вам способы присвоения значений переменным.

10. Расскажите о том, как можно производить вычисления в Shell.

11. Расскажите об известных вам конструкциях языка программирования Shell.

12. Опишите механизм отладки программ в Shell.

Практическая часть

1. Войдите в командный интерпретатор (если он не запустился автоматически).

2. Создайте несколько локальных и глобальных переменных. Используя переменные a, b, c, d, x, создайте сценарий записи в файл результатов вычисления заданных выражений:

, a=[1,2,5,8,10]

Для написания вам понадобятся операторы read,echo, for и let; сделайте ваш программный файл исполняемым.

3. Напишите программу, которая будет помещать в заданный текстовый файл, вводимые вами имена студентов вашей группы и оценки по дисциплине «Операционные системы». Вам понадобятся операторы read, echo и while.

4. Измените программу из предыдущего задания таким образом, чтобы файл со списком студентов не содержал повторяющихся записей и при вводе повторяющейся информации на экран выводились соответствующие сообщения. Вам понадобится операторы if, else, breakилиcontinue. Рекомендуется очистить содержимое файла, если в нём уже есть повторения.

5. Удалите переменные, созданные вами в начале работы.

Примечание

Вы можете проверить правильность выполнения ваших заданий с помощью специальной контролирующей программы:

Формат:labcontrol name1 name2 num

гдеname1 – имя проверяемой программы;

name2– имя файла результатов проверяемой программы;

num – номер задания;

– путь к файлу к контролирующей программе.

Пример

$./ labcontrol prog res2 – вызов контролирующей программы, если она находится в текущей директории для проверяемой программы prog с файлом результата res для задания №2 ($ — приглашение системы).

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

Задание 2

Входные данные: значения переменных b, c, d вводятся с клавиатуры отдельными операторами read.

Выходные данные: результаты вычислений выводятся в файл результатов отдельными операторами echo.

Задание 4

Входные данные: фамилии студентов и оценки вводятся с клавиатуры отдельными операторами read(в цикле), причем сначала вводятся фамилии студентов, а затем их оценки.

Выходные данные: таблица оценок студентов выводятся в файл результатов отдельными операторами echoпо образцу. Образец вывода:

Иванов – 5

Петров – 3

Сидоров – 2

Внимание! В программах не должно быть операторов ввода и вывода, вводящих или выводящих какую либо вспомогательную информацию, а при выводе в файл — лишних пробелов или других символов.

Статьи к прочтению:

Паскаль с нуля [ч4]. Условные операторы


Похожие статьи:

  • Elseif лв2 then оператор2,

    Else ОПЕРАТОР, End Краткая форма If ЛВ then ОПЕРАТОР1 End Здесь ЛВ, ЛВ1, ЛВ2, ЛВ3 – логические выражения; ОПЕРАТОР1, ОПЕРАТОР2, ОПЕРАТОР– любые операторы…

  • Условные операторы pascal-паскаль

    Условные операторы позволяют выбирать для выполнения те или иные части программы в зависимости от некоторых условий. Если, например, в программе…