Цель работы
Изучить основные конструкции командного языка, переменные и подстановки 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 баллов не засчитывается.