Package: bash
Version: 3.1dfsg-8

http://www.opengroup.org/onlinepubs/009695399/utilities/trap.html

   If action is '-', the shell shall reset each condition 
   to the default value.

bash(1):

   If arg is absent (and there is a single sigspec) or -, each
   specified signal is reset to its original disposition (the value it
   had upon entrance to the shell).

And indeed the manpage for bash describes the actual behaviour, not
the correct behaviour:

   $ perl -e 'print STDERR "Signal handling for SIGPIPE:
   $SIG{PIPE}.\n";'
   Signal handling for SIGPIPE: .
   $ sh -c 'trap "" PIPE; exec "$@"' x perl -e 'print STDERR
   "Signal handling for SIGPIPE: $SIG{PIPE}.\n";'
   Signal handling for SIGPIPE: IGNORE.
   $ sh -c 'trap "" PIPE; exec "$@"' x sh -c 'trap - PIPE;
   exec "$@"' x perl -e 'print STDERR "Signal handling for SIGPIPE:
   $SIG{PIPE}.\n";'
   Signal handling for SIGPIPE: IGNORE.
   $ 

If the bash behaviour is thought desirable for some reason (although I
can't imagine why) then another mechanism needs to be provided for
resetting signals to SIG_DFL, as currently this is not possible in
bash.

Ian.



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to