(c) Larry Ewing, Simon Budig, Garrett LeSage
с 1994 г.

Кафедра Информатики и Математического Обеспечения

ПетрГУ | ИМиИТ | О кафедре | Мобильные платформы | Лаборатория ИТС | Семинары НФИ/AMICT
Сотрудники | Выпускники | Учебный процесс | Табель-календарь | Курсовые и выпускные работы
Вычислительные ресурсы | Публикации | Архив новостей | Контактная информация

Цель работы

Изучить основные конструкции командного языка, переменные и подстановки shell, методы построения регулярных выражений, команды, определенные стандартом Posix.2:

alias break compress ed ex exec exit expand
export expr grep iconv read return set sh
shift sleep split stty test trap true tsort
type ulimit unalias uncompress unexpand unset vi xargs

Описание работы

Используя справочные материалы по указанным командам, средства перенаправления ввода-вывода, группировки команд и условного выполнения, реализуйте сценарии shell, позволяющие:

 #   Задание   Команды 
1 Сценарий bigfiles.sh. Вывести имена всех файлов с расширением .zip размером более одного мегабайта, размещенных в каталоге, заданном первым позиционным параметром. Сценарий должен вывести только имена, т.е. префиксы пути, если они присутствуют, должны быть опущены. ls, grep
2 Сценарий links.sh. Для заданного первым параметром html-файла вывести список страниц, на которые он ссылается (адресов из тэгов <a>) решите самостоятельно
3 Сценарий createmissed.sh. Для каждого файла из списка позиционных параметров сценария проверить его существование и, если не существует, создать пустой файл с таким именем решите самостоятельно
4 Сценарий numargs.sh. Вывести собственные позиционные параметры, состоящие исключительно из цифр решите самостоятельно
5 Сценарий iconvr.sh. Рекурсивно выполнить преобразование кодировки. Сценарий получает три параметра. Первый параметр задает корневой каталог дерева обхода, второй — исходную кодировку, третий — целевую кодировку. Необходимо конвертировать все регулярные (обычные) текстовые (с расширением .txt) файлы в заданном каталоге и его подкаталогах. решите самостоятельно

Критерии оценки работы

Сценарии должны быть снабжены вводным комментарием (можно ориентироваться на приведенный ниже пример), текст сценария должен быть подробно откомментирован.

#!/bin/bash
###########################################################################
# Сценарий   :	dtox - преобразование текстового файла DOS к станданру UNIX
# Автор      :	Хайнер Стивен 
# Версия     :  1.1
# Дата       :	2002.02.26
###########################################################################
# Описание
#	Заменяет последовательности "CR LF" признаком конца строки "LF"
# Замечания
#	Не преобразует символ конца файла DOS CTRL-Z (ASCII 26).
###########################################################################

Каждое из заданий может быть оценено в 0 (задание не выполнено, результат не сооветствует требованиям задания или налицо плагиат работы — автор не понимает собственного решения), 0.5 (требования выполнены частично), 1 (задание выполнено, но присутствует не предусмотренный требованиями вывод на экран, задание выполнено не до конца), 2 балл (задание выполнено полностью). Таким образом, всего за работу можно получить до 10 баллов.

Возможные штрафы приведены в таблице. Всего можно получить до 10 штрафных баллов.

 #   Описание   Штраф 
1 Отсутствие заголовочного комментария, несоответствие заголовочного комментария общепринятым соглашениям 0 - 2
2 Отсутствие пояснительных комментариев, комментирование самоочевидных конструкций (дублирование кода, а не пояснение смысла) 0 - 2
3 Присутствует дополнительный вывод, не предусмотренный требованиями (например, диагностические сообщения shell и использованных команд) 0 - 1
4 Неверно устанавливается статус завершения сценария 0 - 1
5 Неструктурированный код, непоследовательность в стиле 0 - 2
6 Возможны (достаточно маловероятные) условия, при которых сценарий будет работать некорректно, не предусмотренные требованиями. 0 - 2

Итоговая оценка определяется суммой баллов. Работа, оцененная менее чем на 0 баллов не засчитывается.