On Sunday, July 06, 2014 09:08:00 AM gregrwm wrote: > if break would preserve the exit status of the preceding command then the > above loop would have a useful exit status.
Completely agree. > an option analogous to pipefail could request the better break behaviour Needless to say, POSIX requires the current behavior: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_15_14 There is a slight inconsistency in a few shells when "! break" is used. See the 2nd-to-last example here: http://wiki.bash-hackers.org/dict/terms/exit_status?redirect=1#portability The easiest workaround is to replace inner loops with function calls, because "return" doesn't suffer from that problem. However that does make breaking out of multiple levels cumbersome. Frustratingly I'm pretty sure there isn't even a possible hackish eval or alias workaround. Notice calling break from a function with a RETURN trap set bypasses the trap if break results in jumping out of the function (Yes, I tried that one long ago). -- Dan Douglas