zsh-users
 help / color / mirror / code / Atom feed
From: Ray Andrews <rayandrews@eastlink.ca>
To: Zsh Users <zsh-users@zsh.org>
Subject: &&||
Date: Mon, 19 Feb 2018 13:12:20 -0800	[thread overview]
Message-ID: <64c5472a-b174-00b6-7ab0-b65d664be675@eastlink.ca> (raw)

function test ()
{
     _aaray=`ls`
     [ true ] && { print -l "${ _aaray[@]}" | GREP_COLOR='01;33' egrep 
--color=always "$1"\

| GREP_COLOR='01;31' egrep --color=always "$2" }\

|| echo bust!
}

    $ touch present

    $ test present pres
    present                            << two colors.

    $ test present pppres
    bust!

    $ test pppresent p
    bust!


When I first did this, I was puzzled by the output, then I wisely 
realized that the  '||'  was in fact responding to the return value of 
the failed egrep.  At first I did this without the braces and was 
content with what happened but I'd expect the braces to force the '||' 
to respond to the leading test (which of course never varies here being 
true all the time) and thus never give me a 'bust!' regardless of the 
egrep return value.  I solved the issue by using an 'if/else' 
construction but still I'm curious about the above.  Is my expectation 
mistaken?  Within an '&& ||' construction how would I write that to do 
as I was expecting -- respond to the truth value of the initial test?  
When I use braces in complex '&& ||' situations they always seem to 
behave as expected.  I do have the niggling feeling my expectation above 
is wrong, but I can't quite say why.


             reply	other threads:[~2018-02-19 21:12 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-19 21:12 Ray Andrews [this message]
2018-02-19 21:57 ` &&|| Peter Stephenson
2018-02-19 22:47   ` &&|| Ray Andrews
2018-02-20  9:26     ` &&|| Peter Stephenson
2018-02-20  7:54       ` &&|| Ray Andrews
2018-02-20 17:07         ` &&|| Peter Stephenson
2018-02-20 19:24           ` &&|| Ray Andrews
2018-02-20 20:28             ` &&|| Bart Schaefer
2018-02-20 21:45               ` &&|| Ray Andrews
  -- strict thread matches above, loose matches on Subject: below --
2004-11-16 13:45 !!:$ keef
2004-11-16 14:22 ` !!:$ Peter Stephenson
2004-11-16 14:31   ` !!:$ Stephane Chazelas
2004-11-16 15:37   ` !!:$ Bart Schaefer
2004-11-16 16:08     ` !!:$ Peter Stephenson
2004-11-17  0:03 ` !!:$ Bart Schaefer
2004-11-17 19:25   ` !!:$ Danek Duvall
2004-11-18  1:10     ` !!:$ Bart Schaefer
2003-07-02 15:06 ?????? JEFF BICKLEY
2003-07-02 19:56 ` ?????? Thorsten Haude

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=64c5472a-b174-00b6-7ab0-b65d664be675@eastlink.ca \
    --to=rayandrews@eastlink.ca \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).