-
-trapret() {(
- local retvals="$1"; shift
- local cmd="$1"; shift
- for retval in $(echo $retvals); do
- local trap_$retval=1
- done
- "$cmd" "$@" || {
- local retval="$?"
- eval "trapped=\${trap_$retval}"
- [ -n "$trapped" ] || {
- return $retval
- }
- }
-)}