В пакете qa-robot есть замечательный файл /usr/bin/tmpdir.sh: $ perldoc /usr/bin/tmpdir.sh NAME tmpdir.sh - manage $TMPDIR SYNOPSIS #!/bin/sh . tmpdir.sh DESCRIPTION When sourced, this script provides private $TMPDIR, which will be purged upon exit. Хотелось бы видеть в libshell нечто подобное.
Можно поподробнее про желаемый функционал ? Потому что то ты хочешь можно реализовать так: . shell-signal workdir="$(mktemp -dt "$PROG.XXXXXXXXXX")" exit_function() { rm -rf -- "$workdir"; exit "$1"; } set_cleanup_handler exit_function
Да, действительно. P.S. А мне обязательно использовать exit в своей exit_function? В gear, на мой взгляд, это приятнее сделано.
(В ответ на комментарий №2) > P.S. А мне обязательно использовать exit в своей exit_function? Разумеется имя функции может быть произвольным. > В gear, на мой взгляд, это приятнее сделано. Единственное различие в названии: install_cleanup_handler -> set_cleanup_handler Что именно тебе кажется более удобным в gear?
Всё, вижу по коду. То же самое, просто меня немного смутил exit "$1" в "моей" exit_function().
(In reply to comment #1) > Потому что то ты хочешь можно реализовать так: Вот это мож и в библиотеку?
(В ответ на комментарий №5) > Вот это мож и в библиотеку? Ты знаешь сколько ещё можно таких примитивов написать ? Эта функция учитывает большинство проблем при создании обработчиков сигналов. Хотя мне больше нравится signal_handler(). Она позволяет создание множественных обработчиков.