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