МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра АПУ
отчет
по лабораторной работе №2
по дисциплине «Программирование систем реального времени»
Тема: Встроенные команды интерпретатора SH.
Вариант № 2
Студент гр. 8391 |
|
Гоглев А.А. |
Студент гр. 8391 |
|
Шушков Д.А. |
Студент гр. 8391 |
|
Маликов А.А. |
Преподаватель |
|
Писарев А.С. |
Санкт-Петербург
2021
ЦЕЛЬ РАБОТЫ
Получить навыки использования команд интерпретатора
ВЫПОЛНЕНИЕ ЛАБОРАТОРНОЙ РАБОТЫ
УПРАЖНЕНИЕ 1
В данном упражнении используется встроенная команда print интерпретатора Shell. Эта команда предназначена для вывода на консоль аргументов в том виде, в котором они представлены в команде.
На рисунке 1 представлены результаты выполнения двух if конструкций.
Рисунок 1 - Результат выполнения управляющих конструкций if
На рисунке 2 представлен результат выполнения while true конструкции.
Рисунок 2 - Результат выполнения конструкции while true
На рисунке 3 представлен результат выполнения until false конструкции.
Рисунок 3 - Результат выполнения конструкции until false
На рисунке 4 представлена конструкция for, выводящая номер бригады и имена ее участников.
Рисунок 4 - Результат выполнения конструкции for
На рисунке 5 представлена конструкция case конструкция, выводящая в правильном или неправильном алфавитном порядке записаны участники бригады.
Рисунок 5 - Результат выполнения конструкции case
На рисунке 6 представлена функция, результат которой аналогичен функции for и сам результат ее выполнения.
Рисунок 6 – Функция и результат ее выполнения
УПРАЖНЕНИЕ 2
В этой части лабораторной работы мы назначали произвольный синоним для функции, определенной нами в упражнении 1;
На рисунке 7 представлено создание синомима для функции g83912, а также вывод синонимов для true, false, echo.
Рисунок 7 - Результат выполнения команды alias
УПРАЖНЕНИЕ 3
На рисунке 8 представлен результат выполнения следующей функции:
a=3
while (let a)
do
print 1
let a=a-1
done
Рисунок 8 - Результат выполнения конструкции while с использованием let
УПРАЖНЕНИЕ 4
В этой части мы установили переменную окружения (g83912)=5;
На рисунке 9 представлен результат выполнения команды export –p. Значение переменной окружения g83912 находится в последней строке и равна 5. Значение переменной HOME отсутствует, а LOGNAME и SHELL равны g83912 и /bin/sh соответсвенно.
Рисунок 9 - Результат выполнения export - p
УПРАЖНЕНИЕ 5:
На этом этапе проведена повторная установка переменной окружения с помощью команды typeset;
У
Рисунок 10 – результат выполнения typeset
Рисунок 11 - Результат выполнения export - p
Установлены переменные окружения PS1=* и PS2=_
На рисунке 12 представлен пример конструкции while с новыми переменными.
Рисунок 12 - Проверка установки переменных с помощью конструкции
УПРАЖНЕНИЕ 6:
Сброшено имя нашей функции, на Рисунке 14 представлен список функций после сброса.
Рисунок 13 - Пример списка функций после сброса
Сброшено значение переменной PS1;
На рисунке 14 представлен результат сброса.
Рисунок 14 - Результат сброса значения PS1
Далее установлено значение переменной окружения PS1=(g83912)
УПРАЖНЕНИЕ 7:
В этой части лабораторной работы мы проконтролировали список сигналов, поддерживаемых встроенной командой kill (Рисунок 16);
Затем то же самое проконтролировали для внешней утилиты kill используя команду use;
Определили по имени сигналы завершения процесса;
Рисунок 15 - Результат описания use команды kill
Сигналы, останавливающие процесс: SIGKILL, SIGSTOP.
Запущен процесс второй процесс Shell, выполнив команду sh и проверен его пид номер с помощью команды ps. Результат действий представлен на рисунке 17.
Рисунок 16 - Список процессов и их pid
После c помощью команды kill завершить процесс sh. Результат представлен на рисунке 18.
Рисунок 17 - Пример завершения процесса sh.
Завершение проконтролировано командой sin.
УПРАЖНЕНИЕ 8:
На последнем этапе мы создали в текущем директории два файла с именами f1 и f2. Далее с помощью команды trap установили ловушку на сигнал SGNUSR1, связав его с действием определенной командой ls. Определили с помощью команды sin pid-номер для shellи послали с помощью утилиты kill сигнал SIGUSR1;
Результат вышеописанных действий представлен на рисунке 19.
Рисунок 18 - Пример работы ловушки trap
ВЫВОД
При выполнении лабораторной работы были получены навыки использования команд интерпретатора. Разобраны управляющие конструкции, написаны функции. Рассмотрены возможности назначения переменных окружения. Изучены возможности команды kill и посланы различные сигналы. Также изучены возможности команды trap.