From: Jeff King Date: Fri, 14 Nov 2014 20:02:39 GMT Subject: Re: [PATCH v2] allow TTY tests to run under recent Mac OS Message-ID: <20141114200239.GA11581@peff.net> In-Reply-To: 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). -Peff