Если в задании не указано точно, о каком файловом объекте идет речь, его имя должно запрашиваться дополнительно.
В скрипте должны быть предусмотрены средства обработки некорректных действий. Индивидуальное задание
Задание 1
Написать интерактивную программу на языке shell, которая выводит список действий с номерами и ожидает ввода номера пункта, после чего начинает выполнение заданных в этом пункте команд. Для команд удаления необходимо запрашивать подтверждение дополнительно. Организовать обработку ошибок, например, при отсутствии удаляемого файла, для чего перенаправить вывод системных сообщений об ошибках в файл-журнал и выдать свое сообщение.
Вариант #1
Задание 1
Напечатать имя текущего каталога
Напечатать содержимое каталога.
Создать файл
Задание 2
Напишите сценарий, получающий в качестве первого аргумента имя каталога и выводящий список тех файлов из этого каталога, имена которых содержат последовательность символов определенную вторым аргументом. Сценарий поместите в подкаталог bin домашнего каталога.
Вариант #2
Задание 1
Создать символьную ссылку на файл
Выполнить введенную команду
Создать жесткую ссылку на файл
Задание 2
Напишите сценарий, который выводит пронумерованный список файлов с расширением txt в текущем каталоге, ожидает от пользователя ввода номера файла, выводит первые десять строк заданного файла и повторяет цикл. Сценарий сохраните в каталоге bin.
Вариант #3
Задание 1
Создать файл
Переименовать файл
Переместить файл
Задание 2
Для всех файлов, передаваемых в качестве параметров командной строки вывести имя файла, и неповторяющиеся строки файла.
Вариант #4
Задание 1
Создать файл
Скопировать файл
Переместить файл
Задание 2
Для каталога указанного в качестве командной строки найти самый большой файл и его имя и размер вывести на экран.
Вариант #5
Задание 1
Вывести текущую дату и время
Вывести содержимое файла на экран
Удалить файл
Задание 2
Напишите скрипт, который удалит из текущего каталога все файлы, содержащие определенную подстроку. В качестве параметра передается подстрока.
Вариант #6
Задание 1
В заданном каталоге вывести список всех подкаталогов.
Сменить текущий каталог
Создать символическую ссылку на файл
Задание 2
Вывести информацию о дате и времени создания для всех файлов текущей директории, которые содержат слово, передаваемое в качестве первого параметра командной строки, а также количество строк содержащих данное слово.
Вариант #7
Задание 1
Создать несколько файлов в текущей директории
Заполнить файл данными
Переместить данные из одного файла в другой
Задание 2
Напишите скрипт, осуществляющий поиск файлов по заданному пользователем критерию (имя файла, тип файла, размер файла, дата и время последней модификации, заданная подстрока) в указанном каталоге, включая подкаталоги.
Вариант #8
Задание 1
Создать файл в указанной директории
Создать жесткую ссылку
Вывести содержимое директории
Задание 2
Отсортировать список файлов директории, имя которой передается в качестве параметра, в обратном порядке и записать его в файл.
Вариант #9
Задание 1
Создать каталог
Объединить все файлы с расширением ".txt" в один файл, имя которого передается в качестве параметра.
Удалить каталог с его содержимым
Задание 2
Отсортировать список файлов указанных директорий в обратном порядке и записать его в файл. Имена каталогов передаются через параметры.
Вариант #10
Задание 1
Перейти в указанный в командной строке каталог
Переместить файл на уровень выше
Вывести содержимое файла на экран
Задание 2
Посчитать количество файлов текущего каталога, содержащих подстроку, передаваемую в качестве командной строки
Контрольные вопросы
Что такое shell?
Какие обработчики существуют? Что такое предпочитаемый обработчик и где хранится о нем информация?
Приведите пример реальной проблемы, которую помогут решить shell-скрипты.
Каким образом осуществляется работа с переменными в среде shell?
Каким образом передаются в shell-скрипт параметры? Как их необходимо обрабатывать?
Какие основные структуры программирования поддерживает shell?