Big bad bug: it appears that subshells always return status 0 in traps.

Bug found in dash 0.5.9 and later.

$ src/dash -c 'trap "(false) && echo BUG" INT; kill -s INT $$'
BUG
$ src/dash -c 'trap "(false) && echo BUG" EXIT'
BUG
$ src/dash -c 'trap "(false); echo \$?" EXIT'
0

Workaround: if an explicit 'exit' is given, it works as expected.

$ src/dash -c 'trap "(false; exit \$?); echo \$?" EXIT'
1

- Martijn

Reply via email to