The behavior seems to have changed in later version. I tested dash 0.5.10.2-6.
There EXIT trap is not run at all, if -e is used, and you use Ctrl-C. But if 
you remove the 'exit 2' from the signal trap, EXIT trap will be run regardless 
of -e setting, when you press Ctrl-C. That is not intuitive. So I think EXIT 
trap should be run even in case of -e. However, if you do not need custom exit 
status for the signal trap, you could just remove the exit builtin.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to dash in Ubuntu.
https://bugs.launchpad.net/bugs/892317

Title:
  set -e reverses order of signal handlers

Status in dash:
  New
Status in dash package in Ubuntu:
  New

Bug description:
  When `-e` is not specified, an INT signal handler runs before an EXIT
  signal handler; when -e is specified, the EXIT signal handler is run
  (but only one of its statements) and then the INT signal handler is
  run.

  :;  /bin/dash < ./trap.sh 
  ^Ctrapped: SIG_
  trapped: EXIT 2
  next part
  :;  /bin/dash -e < ./trap.sh 
  ^Ctrapped: EXIT 130
  trapped: SIG_

  With `bash --posix` or `busybox sh`, the order of signal handlers is
  the same no matter whether `-e` is specified or no. Please see the
  attached script, `trap.sh`.

To manage notifications about this bug go to:
https://bugs.launchpad.net/dash/+bug/892317/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to