Задача 1 — testscript.sh
Создать скрипт testscript.sh, который выполняет следующее:
- В каталоге
/homeсоздаст 5 каталогов с именами Dir1 … Dir5 - В каждый из созданных каталогов создаст 5 файлов с интервалом 5 секунд с именами File1.txt … File5.txt
- В каждый файл запишет текущее время в формате H-M-S
- По окончании создания каждого каталога со списком файлов выводит на экран список файлов
- Создаст сжатый tar-архив в каталоге
/tmp/Arhс именемArh-ТЕКУЩАЯ_ДАТА(формат d-m-y), в архив упакует все созданные каталоги - Создаст файл
ArhList.txtсо списком содержимого архива - Разархивирует архив в новый путь
/opt/newfolder/, сохранит структуру каталогов
В скрипте предусмотреть возможность изменить пути для создания и распаковки архива (используем переменные).
Задача 2 — pinger.sh
Написать скрипт, который:
- Запрашивает у пользователя адрес для пинга (
read -p) - Запрашивает количество запросов для проверки
- Выполняет пинг с указанным количеством запросов (
ping -c "$count" "$address") - Возвращает среднее значение ответа в мс (через
awk)
Задача 3 — md5check.sh
Написать скрипт по проверке целостности файлов в указанной директории:
- Запросить у пользователя путь к директории для контроля
- Запросить путь для сохранения результата
- Создать директорию для результата (
mkdir -p) - Для каждого файла: вывести имя файла и вычислить MD5-хэш, сохранить результат (
md5sum ... >> checksums.txt)
Задача 4 — scriptmaker.sh
Написать скрипт, который:
- Запрашивает у пользователя путь, где будет создан новый скрипт
- Запрашивает имя для нового скрипта
- Создаёт директорию для скрипта (если не существует)
- Проверяет, существует ли уже файл с указанным именем
- Если существует — выводит сообщение об ошибке
- Если не существует — создаёт скрипт с шаблонным заголовком, назначает права исполнения, сообщает «DONE»
Задача 5 — rename_ext.sh
Написать скрипт, который:
- Запрашивает директорию (или использует текущую при пустом вводе)
- Запрашивает текущее и новое расширения файлов
- Меняет расширение всех файлов с текущим расширением на новое
Вопросы для повторения
- Для чего нужны циклы в скрипте?
- Какими способами можно запускать bash-скрипты?
- Что делает
2>/dev/nullпосле команды? - Какое значение имеет
$?после успешной команды? - Чем отличается
>от>>в контексте редиректа?