Re: [question] && chaining vs shell loops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Mar 29, 2015 at 06:07:39PM +0200, Andreas Schwab wrote:

> Max Kirillov <max@xxxxxxxxxx> writes:
> 
> > As far as I can see, loops in shell ignore non-zero exit
> > codes of the bodies which are not last. For example, exit
> > code of command 'for f in false true; do $f; done' is 0,
> > even if there was false.
> 
> There is nothing special with loops, that's how the exit code of
> compound commands is defined in general: it's the exit code of the last
> executed command.

Yes, but that makes it problematic if you want to know if any of the
loop iterations failed. Doing:

  for f in false true; do $f || break; done

doesn't work, because the "break" has exit code 0. Doing:

  (for f in false true; do $f || exit 1; done)

works. In our test scripts, it is also OK to just "return 1", because
the test snippets execute inside a function.

If you have other solutions, I'd love to hear them. I just fixed several
of these loops recently, and I couldn't come up with anything more
clever.

-Peff
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]