Jeff King <peff@xxxxxxxx> writes: > On Fri, Nov 14, 2014 at 11:48:36AM -0800, Michael Blume wrote: > >> My understanding is that && and || have equal precedence, and this >> seems to be borne out in testing at my shell. If the if/then method is >> clearer I'm happy to go with that. > > I think the problem is that there are earlier parts of the chain. It > currently looks like: > > foo && > bar && > do_something > > but you are making it: > > foo && > bar || baz && > do_something > > which will do_something whether or not "foo" is true. You need to put > your "||" at a lower precedence than the rest of the chain. The "if" > that Johannes mentioned works, though I think > > test_have_prereq PERL && > { > test "$(uname -s)" != Darwin || > test "$(uname -r | cut -d. -f1)" -ge 13 > } && > ... > > is more obvious to read (but that's subjective, of course). Thanks. While I was reading this earlier I wondered the same thing and concluded it was OK based on the equal precedence, but like Michael I missed that there is yet another test before it. -- 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