On Tue, Sep 11, 2012 at 09:24:39PM +0600, ???????? ?????????????????? wrote: > 1. Can you give me link (or name of) posix standard where I can read about > this?
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_25 "When this option is on, if a simple command fails for any of the reasons listed in Consequences of Shell Errors or returns an exit status value >0, and is not part of the compound list following a while, until, or if keyword, and is not a part of an AND or OR list, and is not a pipeline preceded by the ! reserved word, then the shell shall immediately exit." In your original example, which I believe looked something like: if ! myfunc; then set -e is not in effect for two reasons: the if, and the !. Either one would be sufficient to disable it. You've got both. > 2. Is there any workaround (like shopt) that will help for such case? I > have read all shopts, man bash and found nothing. The workaround is "stop trying to use set -e".