Задания по программированию на языке bash.
Создать скрипт (командный файл), решающий указанную в варианте задачу. Скрипт должен правильно обрабатывать вызов с неправильным количеством аргументов, а также выводить подсказку об использовании при указании опции --help (аналогично стандартным утилитам).
Вариант 1
Написать скрипт, выполняющий синхронизацию содержимого указанных в качестве аргументов каталогов: файл, отсутствующий (или более старый) в первом каталоге, копируется в него из второго. Вывести на стандартный вывод протокол выполненных действий.
Вариант 2
Удалить указанные в командной строке каталоги (возможно, с подкаталогами), не используя опцию -r (рекурсивно) команды rm, и вывести на стандартный вывод протокол выполненных действий.
Вариант 3
Создать скрипт, проверяющий (командой ping) доступность всех узлов подсети, указанной в качестве аргумента (например, 192.168.1. ) (маска — 255.255.255.0). Список адресов «отозвавшихся» узлов занести в файл.
Вариант 4
Скопировать все файлы в каталоге, указанном в командной строке, в другой каталог, указанный во втором аргументе (если он не существует, то создать его). Если имеются файлы с одинаковыми именами, то при копировании изменить имя, добавив к нему «.1», например, file.c скопировать в file.c.1.
Вывести на экран и записать в файл report протокол проведенных действий.
Вариант 5
Сравнить содержимое двух каталогов, указанных в командной строке (1-й и 2-й аргумент), и вывести отчет о файлах: отсутствующих в одном из каталогов, имеющихся в обоих каталогов (для таких вывести результат сравнения их по дате/времени последнего изменения и размере).
Вариант 6
Удалить файлы, список которых находится в текстовом файле, заданном в командной строке. Сформировать 2 списка: список реально удаленных файлов, и список тех, которые не удалены (указать: отсутствует или невозможно удалить). Подсчитать и вывести количество тех и других.
Вариант 7
Проверить наличие файлов, имена которых указаны в заданном файле, и их новизну по сравнению с файлом-списком. Сформировать отчет с указанием отсутствующих и обновлённых файлов.
Вариант 8
Скопировать файлы из текущего каталога в заданный. Заданный каталог — первый аргумент скрипта, следующие аргументы — имена файлов. Уже существующие файлы не изменять. Вывести на экран и в файл report отчет о проделанных действиях (файл скопирован, уже имеется, не существует).
Вариант 9
Создать файлы, записывая в них заданные в командной строке слова. Аргументы командной строки следующие:
Имя_файла1 Слово1 Имя_файла2 Слово2 ... Имя_файлаN СловоN
Уже существующие файлы не изменять. Создать файл отчета report, содержащий сведения по каждому файлу (создан или уже существует) и общее количество созданных файлов.
Вариант 10
Скопировать файлы, заданные в командной строке, в каталог, имя которого вводится с клавиатуры после запуска скрипта. При копировании заменять уже существующие файлы с теми же именами. Сформировать файл отчета, содержащий список указанных файлов с комментарием для каждого: скопирован, заменен, отсутствует.
Вариант 11
Переименовать указанные в командной строке файлы в «1», «2», «3» и так далее по порядку их следования в списке аргументов (если заданный файл не существует — просто игнорировать его). Вывести на стандартный вывод список (с указанием старого и нового имени) и количество реально переименованных файлов.
Вариант 12
Проверить, какие из файлов, перечисленных в командной строке, имеются и в текущем каталоге, и в каталоге, заданном переменной окружения ARCDIR. Сформировать файл отчета report, в котором для каждого файла указать, где он имеется, и при наличии его в обоих каталогах — сравнение времени последнего изменения и размера.
Вариант 13
Перевести натуральные числа, заданные в командной строке, в запись римскими цифрами и вывести результат на стандартный вывод.
Вариант 14
Перевести заданные в командной строке числа, записанные римскими цифрами, в десятичную форму и вывести их на стандартный вывод.
Вариант 15
Проверить доступность указанных в командной строке узлов сети командой ping и записать результат в файл отчета, а также вывести на экран.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.