УТС 6 семестр / ЛР4 вар2 Программирование сценариев для интерпретатора shell
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра АПУ
отчет
по лабораторной работе №4
по дисциплине «Программирование систем реального времени»
Тема: Программирование сценариев для интерпретатора shell
Вариант № 2
Студент гр. 8391 |
|
Гоглев А.А |
Студент гр. 8391 |
|
Шушков Д.А. |
Студент гр. 8391 |
|
Маликов А.А. |
Преподаватель |
|
Писарев А.С. |
Санкт-Петербург
2021
ЦЕЛЬ РАБОТЫ
Изучить технологию программирования сценариев.
ВЫПОЛНЕНИЕ РАБОТЫ
ВЫПОЛНИТЬ:
cd..;ls|sort -d
ls|sort -r
На рисунка 1-2 представлен результат выполнения команд. Так в случае опции –d (рисунок 1) список выводится в алфавитном порядке, а в случае опции –r (рисунок 2) в обратном порядке.
Рисунок 1-Директория в алфавитном порядке
Рисунок 2-Директория в инвертированном порядке
ВЫПОЛНИТЬ:
find . -user g83912
На рисунке 3 представлен результат выполнения данной команды. В консоль были выведены файлы находящиеся в директории, принадлежащей этому пользователю.
Рисунок 3-Результат выполнения findс полем user g/8392
Результат выполнения команды find /bin -name ‘[a-e]*’ представлен на рисунке 4. Были выведены файлы из директория /bin, начинающиеся с символов от а до е.
Рисунок 4-Резултат работы find с полем -name ‘[a-e]*’
Результат выполнения find /bin -exec print 1. Команда выводит 1 на каждый файл директория.
Рисунок 5-Результат выполнения find с полем exet print 1
Результаты выполнения find /bin -exec print @ и find /bin -exec echo {} представлены на рисунках 6 и 7. Обе команды выводят содержимое директория.
Рисунок 6-Результат выполнения find с полем exet @
Рисунок 7-Результат выполнения find с полем exet {}
УПРАЖНЕНИЕ 1:
На рисунке 8 представлено содержимое сценария PRB и результат использования команды use на него.
Рисунок 8-Текст сценария PRB и результат use PRB
УПРАЖНЕНИЕ 2:
ВЫПОЛНИТЕ:
a=$(use abcd); test -z $a && print NOT use Meesage
print $a
a =$(use cat); test -z $a || print YES!!!
print $a
На рисунке 10 представлен результат выполнения команд. Ключ –z выдает истину, если переменная пуста.
Рисунок 9-Выполнение команды с ключом –z команды test
УПРАЖНЕНИЕ 3:
Выполните те же действия по формированию значений переменной a , что и в УПРАЖНЕНИИ 2, используя конструкцию if ... then ... else.
На рисунке 11 представлена if конструкция, выполняющая формирование переменной а как и команды в упражнении 2.
Рисунок 10- Команды на основе конструкций if.
УПРАЖНЕНИЕ 4:
Составьте сценарий с именем Select и аргументом arg, который выполняет те же действия, что и последовательность команд в УПРАЖНЕНИИ 2., но результат сохраняет в файле с именем result.txt.
arg - входной параметр скрипта - имя файла для команды use.
Так на рисунке 12 представлен сам сценарий, а на рисунке 13 примеры его выполнения и результат в файле result.txt
Рисунок 11-Текст сценария select
Рисунок 12- Примеры использования сценария.
УПРАЖНЕНИЕ 5:
Составьте программу сценария (с именем quick), формирующего файл справочник для всех внешних команд;
- программа должна содержать встроенное сообщение о назначении и способе использования файла сценария со следующим заголовком:
QUICK REPLAY
CREATED BY (ВАШЕ ИМЯ) (DATE)
SYNTAX:
quick [path] 4
- имя директория должно задаваться как параметр, по умолчанию должно быть использовано имя текущего директория;
- перед каждой статьей справочника должен быть выведен заголовок COMMAND имя команды; - каждая статья справочника должна быть завершено разграничительной строкой вида: «_______________________________»
- в справочнике должно быть сформировано сообщение NOT use Message для всех команд, у которых отсутствует use-сообщение.
Постройте справочник для файлов Вашего директория и директория /bin
На рисунке 13 представлен текст сценария, а на рисунках 13 и 15 пример результат использования сценария.
Рисунок 13-Текст сценария QUICK
Рисунок 14 – Пример справочника для директории бригады
Рисунок 15-Пример справочника для директории /bin
УПРАЖНЕНИЕ 6:
Составьте программу сценария (print_s) отображающего на консоль имена всех файлов, имя которых содержит символ «symbol»
- сценарий должен содержать встроенное use
- сообщение со следующим заголовком:
PRINT ALL FILES WITH S’NAME
CREATED BY (ВАШЕ ИМЯ) (ДАТА)
print_s [path]
SYNTAX:
- имя директория определяется как параметр и распечатывается на консоли; - символ вводится в режиме диалога после подсказки Input symbol > (символ > необходимо «экранировать» \). Программирование выполнять по этапам.
Рисунок 16-Файл сценария print_s
Рисунок 17-Use сценария и пример поиска файлов на l в /home/g83912
Рисунок 18-Пример поиска файлов на s в /bin
УПРАЖНЕНИЕ 7:
Составьте программу сценария, копирующего в ваш текущий директорий все файлы, имена которых содержат символ «symbol»;
- имя директория источника определяется как параметр;
- символ вводиться в интерактивном режиме;
- если файлов с указанным символом в директории нет, выдается сообщение. Программирование выполнять по этапам.
На рисунке 19 представлен текст сценария copy, на рисунке 20 представлен результат выполнения этого сценария с входным параметром /home/g83912 и символом m.
Рисунок 19- Текст сценария copy
Рисунок 20-Результат использования сценария copy
ВЫВОД
В ходе выполнения лабораторной работы были изучены возможности команды sort и find. Были запрограммированы сценарии для формирования справочника, поиска файлов, начинающихся на определенную букву и копирования файлов содержащих определенную букву. Все сценарии работают корректно, в связи с чем, можно сделать вывод что работа выполнена верно.