> I have a question on the POSIX behavior of `return' shell builtin
> without arguments when used in a shell `trap' action.
> [...]
> trap 'setexit 111; return' USR1
> [...]
> trap 'handler; stat=$?; return' USR1
The same document you linked says:
> If the shell is not currently executing a function or dot script, the
> results are unspecified.
in DESCRIPTION section; it's unspecified what those returns do.
I got what you're actually asking though. According to the
standard, application below should print kill's exit status bacause
it is *the command that executed immediately preceding the trap
action*.
f() { return 42; }
g() { return; }
trap 'g; echo $?' USR1
kill -USR1 $$
However some shells (dash for instance) print 42. I think it's a
misreading of the standard.
--
Oğuz