(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 Сценарий sucmds.sh. Вывести имена всех команд, размещенных в каталоге /usr/bin, получающих при выполнении права суперпользователя. Сценарий должен вывести только имена, т.е. префиксы пути, если они присутствуют, должны быть опущены. ls, grep
2 Сценарий randrename.sh. Переименовать случайно выбранный файл из каталога, заданного первым параметром, заменив его имя на слово, заданное вторым параметром. Сценарий должен сохранять расширение переименовываемого файла. решите самостоятельно
3 Сценарий ecount.sh. Вывести число вхождений слова, заданного вторым параметром сценария в каждый регулярный файл каталога, заданного первым позиционным параметром. Сценарий должен вывести на экран таблицу в форме <имя> <количество вхождений> решите самостоятельно
4 Сценарий revargs.sh. Вывести собственные позиционные параметры в обратном порядке решите самостоятельно
5 Сценарий chmodr.sh. Рекурсивно выполнить смену разрешений. Сценарий получает три параметра. Первый параметр задает корневой каталог дерева обхода, второй — права доступа для каталогов, третий — права доступа для файлов. Права задаются в формате команды chmod. решите самостоятельно

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

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

#!/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 баллов не засчитывается.