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

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

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

Цель работы

Изучить средства управления потоком в сценариях shell, механизм разбора параметров с использованием команды getopt, использование функций в командном языке.

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

В рамках лабораторной работы необходимо написать сценарий shell bim.sh, позволяющий выполнить пакетную обработку JPEG-файлов из заданного каталога. JPEG-файлы идентифицируются расширениями *.jpg и *.jpeg (возможно, в верхнем регистре). Сценарий должен уметь выполнять определенные ниже функции для всех JPEG-файлов заданного каталога. Сценарий должен распознавать как короткие, так и длинные опции.

Для преобразования изображений можно воспользоваться программой convert.

Перечень распознаваемых опций приведен в таблице. При обнаружении противоречащих и дублирующихся опций, поведение сценария не оговаривается (на Ваш выбор).

 #   Действие   Опция 
1 Каталог с подлежащими обработке изображениями. Это обязательный параметр, если он опущен, сценарий должен выводить короткую справку и завершать выполнение. -s путь
--source-dir путь
2 Целевой каталог (в котором будут размещены обработанные файлы). Это обязательный параметр, если он опущен, сценарий должен выводить короткую справку и завершать выполнение. -d путь
--dest-dir путь
3 Зеркальное отражение изображений относительно горизонтальной оси (flop). -h
--horiz-mirror
4 Зеркальное отражение изображений относительно вертикальной оси (flip). -v
--vert-mirror
5 Размывание изображение. (blur) -b значение
--blur значение
6 Поворот изображения, если это необходимо (auto-orient). -r
--rotate
7 Любое преобразование или эффект ImageMagick (convert) на ваш выбор. на ваш выбор
8 Любое преобразование или эффект ImageMagick (convert) на ваш выбор. на ваш выбор

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

Оценивание задания осуществляется по следующей таблице, в которой каждое значение может быть умножено на поправочный вещественнозначный коэффициент в интервале [0; 1], отражающий степень самостоятельности выполнения задания. Всего за работу можно получить до 10 баллов

 #   Релизовано   Баллы 
1 Реализовано распознавание опций -d, -s 0 - 2
2 Предусмотрена возможность появления файлов *.jpg и *.jpeg с проивольной комбинацией регистров символов расширения (например, *.JpG), выполняются проверки существования каталогов и другие исключительные ситуации 0 - 2
3 Реализована функция 3-8 0 - 1 (каждая)

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

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

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