On 12/22/17 1:56 PM, Kevin Layer wrote: > The man page says: > > The shell does not exit if the command that fails is part of the > command list immediately following a while or until keyword, > part of the test following the if or elif reserved words, > part of any command executed in a && or || list except the > command following the final && or ||, any command in a > pipeline but the last, or if the command's return value is being > inverted with !. > > The fact that [ exits with 1 seems to be covered by the above passage for > -e.
It doesn't exit because that command fails. It exits because the simple command that is the function call fails, since a function returns the status of the last command exited in the function body. That's why it doesn't fail when the last command in the body is `:'. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU c...@case.edu http://tiswww.cwru.edu/~chet/