It works for me.
Create a test trap:
$ trap $ trap echo SIGIO $ trap trap -- 'echo' SIGIO
Keep trap in save_traps :
$ save_traps=$(trap)
Delete
$ trap SIGIO $ trap | wc -l 0
Recovery:
$ eval "$save_traps" $ trap trap -- 'echo' SIGIO
Tested with
$ bash --version GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12) Copyright (C) 2007 Free Software Foundation, Inc.
source share