Лабораторная работа №2 по дисциплине Операционные системы.. ЛР№@. Цель работы Целью выполнения настоящей лабораторной работы является развитие навыков программирования на языке Shell путем использования в скриптах управляющих операторов if, case, for, while, until. Задание
Скачать 228.27 Kb.
|
Цель работы: Целью выполнения настоящей лабораторной работы является развитие навыков программирования на языке Shell путем использования в скриптах управляющих операторов if, case, for, while, until. Задание: Требуется разработать программу на языке Shell (без использования команды find), выполняющую поиск в заданном поддереве файловой струк-туры всех файлов, имена которых отвечают заданному шаблону. Результатом работы программы является перечень имен искомых файлов на экране. Программа состоит из двух скриптов. Главный скрипт выполняет вывод на экран приглашения ввести с клавиатуры имя-путь начального каталога и шаблон поиска. Далее он выполняет ввод этих данных с клавиатуры и выводит на экран перечень искомых файлов в начальном каталоге поиска (если они там есть). Затем он вызывает для каждого подкаталога вложенный скрипт, передав ему два входных параметра: 1) относительное имя подкаталога; 2) шаблон поиска. Вложенный скрипт выполняет поиск в заданном каталоге искомых фай-лов, а для каждого подкаталога вызывает точно такой же скрипт. Ход выполнения работы: Для выполнения работы будем использовать каталог /home/lock/dir1 с подкаталогами dir2 и dir3. Маской – шаблоном поиска, будут являться слова “box”, “word” и “file”. В соответствии с заданием, создадим скрипт tst.sh . При построении логики работы скрипта используем конструкцию if – then – else. В первую очередь конструкция позволяет убедиться в существовании вводимой директории, затем в возможном нахождении искомых файлов в указанной директории. В дальнейшем, программа выведет на экран перечень найденных файлов, либо уведомит об их отсутствии. Далее работа программы передаётся вложенному скрипту lab2IN.sh , с передачей вводных параметров. Вложенный скрипт, получая данные о текущем каталоге, проверяет нахождение файлов согласно шаблону. Затем, при помощи оператора цикла for программа обрабатывает название подкаталога и запускает текущий скрипт для данного подкаталога. В дальнейшем происходит рекурсивное выполнение скрипта для всех подкаталогов. Тело скрипта tst.sh Тело скрипта lab2IN.sh Для демонстрации работы программы вводим путь – имя каталога и слова-шаблоны: Для маски “box” Для маски “word” Для маски “file” Для маски «?» Проверим выполнение программы для подкаталога dir2 и маски “box” Проверим выполнение программы для несуществующей директории Вывод: В ходе проведения лабораторной работы получен навык в использовании управляющих операторов. Закреплён материал изученный ранее. Использованы знания в создании скриптов выполняющихся рекурсивно. |