> 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