Hi Akim,

This gets weirder

Akim Demaille wrote:
> 
> >>>>> "David" == David Morgan <[EMAIL PROTECTED]> writes:
> 
> David> Akim Demaille wrote:
> >> | The script results are: | | .  | 1
> >>
> >> Does it *always* fail, or it's just the operator | which does not
> >> erase failures?
> >>
> >> expr 'a' : '\(a\)'; echo $?
> >>
> >> expr 'a' : '\(b\)' '|' 'a' : '\(a\)'; echo $?
> 
> David> It always fails
> 
> David> Both cases return 'a' and an exit code of 1.
> 
> David> Looks like a buggy OS at this point as I tried the failure case
> David> of just
> 
> David> expr 'a' : '\(b\)' ; echo $?
> 
> David> And I get a 0 with no output.
> 
> Nia?  Are you saying `expr' is always exiting the negation of the
> expected answer?
> 
> expr 'a' : '\(a\)' || echo failure

Gives:
a
failure

> expr 'a' : '\(b\)' && echo failure

Gives:
0
> 
> gives twice failure?  How does the following behave?
> 
> expr 'a' : 'a' || echo failure

Gives:
1
> expr 'a' : 'b' && echo failure

Gives
0

I'd take a guess and say that the expr command doesn't return the right
results for the regular expressions at all.  Please note when I say gives
above this REALLY is the output not exit codes as it may appear.

Regards
 David

Reply via email to