12345678910111213141516171819 |
- cleanup() {
- pkill -P $$ || true
- wait || true
- }
- trap_add() {
- trap_add_cmd=$1; shift || fatal "${FUNCNAME} usage error"
- for trap_add_name in "$@"; do
- trap -- "$(
- extract_trap_cmd() { printf '%s\n' "${3:-}"; }
- eval "extract_trap_cmd $(trap -p "${trap_add_name}")"
- printf '%s\n' "${trap_add_cmd}"
- )" "${trap_add_name}" \
- || fatal "unable to add to trap ${trap_add_name}"
- done
- }
- declare -f -t trap_add
- trap_add 'cleanup' EXIT
|