blob: 4c0d53bde294090496527ba13ac057f4e6f425cd
1 | a() { |
2 | (exit 2) |
3 | echo a:$? |
4 | (kill -s USR1 $$; echo b:$?; exit 3) |
5 | echo c:$? # does not execute |
6 | (exit 4) |
7 | } |
8 | |
9 | trap "echo Trap; return" USR1 |
10 | a |
11 | |
12 | echo d:$? |
13 | # It's debatable what is the correct value above. |
14 | # Does 'return' in trap see $? == 2 or $? == 3? |
15 | # IOW: after (kill..), does shell first wait for its completion |
16 | # and sets $?, then checks pending signals and runs a trap handler, |
17 | # or does it first check pending signals and runs handler? |
18 | # hush does the former, and prints 3. |
19 |