Bash trap EXIT: удалить временную папку при завершении скрипта
Bash trap срабатывает при завершении скрипта и удаляет временные файлы даже после ошибки. Создавайте отдельный каталог через mktemp и удаляйте только этот путь, а не общий системный каталог.
Рабочий пример
tmp_dir=$(mktemp -d)
cleanup() { rm -rf -- \"$tmp_dir\"; }
trap cleanup EXIT
printf '%s\\n' \"temporary result\" > \"$tmp_dir/result.txt\"
cat \"$tmp_dir/result.txt\"EXIT ловит обычное завершение и выход после set -e. Для прерывания добавьте traps на INT и TERM; очистка должна быть короткой и не мешать возврату исходного кода ошибки.
Частый вопрос
Сработает ли trap при SIGKILL?
Нет. SIGKILL невозможно перехватить, поэтому cleanup при аварийном завершении процесса не гарантирован. Временные файлы должны иметь безопасные имена и период уборки.