On Mon, Apr 9, 2012 at 8:31 PM, Dan Stromberg <drsali...@gmail.com> wrote: > > What should be the behavior of the following? > > if cmd1 > then > cmd2 > fi && if cmd3 > then > cmd4 > fi > > I've not joined two if's with a short-circuit boolean before, but I'm > suddenly working on a script where someone else has. > > Playing around, it appears that cmd1 and cmd3 have no direct impact on > the exit codes of the two if's, while cmd2 and cmd4 do (if cmd1 or > cmd3 evaluate true). Is this the defined behavior in POSIX shell? In > bash? In bash symlinked to /bin/sh? In dash? > > TIA! > posix says "The exit status of the if command shall be the exit status of the then or else compound-list that was executed, or zero, if none was executed."
The bash documentation says essentialy the same.