>_ IzzyLab

Практическое задание

Скрипт с trap-очисткой

средне

Напиши /usr/local/bin/worktmp, который создаёт временный файл, что-то с ним делает и гарантированно удаляет его при завершении — даже если скрипт прервут. После запуска временных файлов остаться не должно.

Что потренируешь:
  • trap
  • mktemp
  • обработка сигналов
  • EXIT
  • очистка ресурсов

Разбор темы

Если удалять временный файл просто последней строкой скрипта, то при ошибке в середине или прерывании (Ctrl-C) до неё дело не дойдёт и мусор останется. Надёжный приём — trap: он вешает команду-обработчик на сигнал или псевдособытие, и она выполняется при любом выходе из скрипта. Ключевая идея — создать файл безопасно через mktemp (уникальное имя), а сразу следующей строкой навесить очистку на событие EXIT, которое срабатывает и при нормальном завершении, и по ошибке, и по сигналу.

Что проверяется

  1. worktmp исполняемый
  2. временные файлы убраны из /tmp

Как это выглядит