bug-bash
[Top][All Lists]
Advanced

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

Re: Possible bug in bash


From: flyingrhino
Subject: Re: Possible bug in bash
Date: Fri, 13 May 2022 20:17:34 +1200

Thanks Lawrence for the response.
Between you and Robert I now have a clear understanding on this and I'll go 
back and fix the bug in my code which used this construct.

Ken.


On Fri, 13 May 2022 00:51:49 -0400
Lawrence Velázquez <vq@larryv.me> wrote:

> On Thu, May 12, 2022, at 11:34 PM, flyingrhino wrote:
> > Should the "else" condition after the:  ||  run if the last command in 
> > the:  &&  section exits non zero?  
> 
> Yes.  This behavior is not a bug; ''A && B || C'' is simply not
> equivalent to ''if A then B; else C; fi''.
> 
> https://mywiki.wooledge.org/BashPitfalls#pf22
> 
> > Script:
> >
> >
> > #!/bin/bash
> >
> > [[ "a" == "a" ]] && \
> >      {
> >      echo "equal"
> >      ls x
> >      } || {
> >      echo "***** SHOULD NOT DISPLAY 4"
> >      }
> >
> >
> > Result:
> >
> > ./moo.sh
> > equal
> > ls: cannot access 'x': No such file or directory
> > ***** SHOULD NOT DISPLAY 4  
> 
> This behavior is expected and correct.  There is no bug here.
> 
> > BTW, I've checked other conditions as follows and they look ok:
> >
> > [...]
> >
> > [[ "a" == "a" ]] && \
> >      {
> >      echo "equal"
> >      } || {
> >      echo "***** SHOULD NOT DISPLAY 1"
> >      }  
> 
> This would display "***** SHOULD NOT DISPLAY 1" if ''echo "equal"''
> failed for some reason.  (Unlikely but possible.)
> 



-- 
Rhinos can fly,

It's just a case of mind over matter ...
... And you need a lot of mind to control that much matter ...




reply via email to

[Prev in Thread] Current Thread [Next in Thread]