This bug is... now different. But not fixed. Using Dash 0.5.8-2.10, the output I get from the script is:
3 ^CEXIT Ignored 1 Ignored 2 Back Note that EXIT fires a lot earlier than expected, and the script unexpectedly terminates. I still see similar behaviour to the original bug (only one line is executed) with this script: #!/bin/sh set -e trap 'exit 1' INT trap 'sorry' EXIT sorry() { echo "Ignored 1"; echo "Ignored 2" sleep 1 echo Back } for i in 3 2 1; do echo "$i" sleep 1 # || true done echo OUT Expected output: 3 ^CIgnored 1 Ignored 2 Back Actual output: 3 ^CIgnored 1 -- 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/673119 Title: dash "set -e" breaks "trap action INT" Status in dash package in Ubuntu: New Bug description: Binary package hint: dash With set -e, dash executes only the first command of an INT (Ctrl-C) trap handler: #!/bin/sh set -e trap 'sorry' INT trap 'echo EXIT' EXIT zero() { return 0; } sorry() { #zero echo "Ignored 1"; echo "Ignored 2" sleep 1 echo Back } for i in 3 2 1; do echo "$i" sleep 1 # || true done echo OUT Actual result: $ ./x # Press ^C right away 3 ^CIgnored 1 EXIT Expected result: 3 ^CIgnored 1 Ignored 2 Back 2 1 OUT EXIT By un-commenting the call to function zero, or the "|| true" in the main loop, the problem disapears. Bash also exits prematurely, but at least it runs the "trap INT" handler code to completion. ProblemType: Bug DistroRelease: Ubuntu 10.04 Package: dash 0.5.5.1-3ubuntu2 ProcVersionSignature: Ubuntu 2.6.32-25.45-generic 2.6.32.21+drm33.7 Uname: Linux 2.6.32-25-generic i686 NonfreeKernelModules: nvidia Architecture: i386 Date: Tue Nov 9 19:12:41 2010 ProcEnviron: PATH=(custom, user) LANG=en_US.UTF-8 SHELL=/bin/bash SourcePackage: dash To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/dash/+bug/673119/+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