> 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

Reply via email to