Этот курс среднего уровня дополняет базовые Bash-скрипты повторно используемыми функциями, контролируемой областью, обработчиками очистки, расширением параметров и массивами. В пяти практикумах с инструкциями вы организуете логику, разделите текст и статус, отреагируете на завершение, обработаете строки без внешних инструментов и безопасно переберёте коллекции.
Итоговое задание объединяет техники в log_manager.sh: хранить фиксированный массив подготовленных журналов, получать имена .backup в функции, копировать существующие файлы, предупреждать об отсутствующих и удалять временный отчёт при выходе.
Чему вы научитесь
- Определять и вызывать Bash-функции и передавать значения через аргументы
- Защищать состояние через
local, не изменяя глобальные переменные случайно - Возвращать статусы, немедленно сохранять
$?и ветвиться по результатам - Регистрировать функции очистки для SIGINT и EXIT через
trap - Выделять, заменять строки и задавать значения по умолчанию расширением параметров
- Объявлять массивы, добавлять элементы, раскрывать значения и безопасно перебирать с кавычками
- Получать имена копий заменой
.logна.backupвнутри функции - Объединять очистку, массивы, проверки файлов, функции и предупреждения в одном скрипте
Для кого этот курс
Курс предназначен для изучивших основы Bash и желающих сделать небольшие служебные скрипты более модульными и предсказуемыми с помощью техник среднего уровня.
Предварительные требования: Bash-скрипты, переменные, позиционные аргументы, условия, циклы, проверки файлов, коды выхода, перенаправление, права выполнения и файловые команды.
Учебная среда: Предоставляемый LabEx терминал на базе Ubuntu с Bash, редактируемыми скриптами, упражнениями с сигналами и временными файлами и тремя подготовленными журналами.
Часто задаваемые вопросы
Как построен курс?
Пять практикумов содержат инструкции. В шестом задании вы строите log_manager.sh, объединяющий trap очистки, функцию, массив, замену строки и цикл.
Сжимает, удаляет или действительно ротирует ли итоговый менеджер журналы?
Нет. Он копирует каждый подготовленный .log в соседний .backup, сохраняя оригинал. Сжатие, хранение, обнуление и logrotate не реализуются.
Какие события обрабатывают упражнения с trap?
В практикуме очистка назначается на SIGINT и EXIT, поэтому Ctrl+C и нормальный выход удаляют временный файл. В задании требуется EXIT trap для report.txt.
Может ли Bash-функция вернуть текст через return?
В этих упражнениях нет. return передаёт целочисленный статус 0–255 для управления; текст выводится через echo или захватывается подстановкой команд.


