2010-12-27, 13:14(+01), <dnade....@orange-ftgroup.com>:
>       Hello
>
> More information on that topic : 
>
> false ; false | echo $? stills prints 0.
> false ; (false) | echo $? prints 1
>
> So.. ? $? in the right side of a pipe is randomly the exit
> status of the left side depending of the way you write it ?
> Doesn’t sound sane.

That's not the exit status of the left side. It couldn't be as
both sides of the pipe are started at the same time and run
concurrently.

> Doesn’t that break POSIX anyway ?

I suppose it does. I can't see any reason why the above
shouldn't print 1 in any case.

> I think it should be fixed.

Me too.

Note that $PIPESTATUS doesn't seem to be affected by that bug.

$ bash -c '(exit 2) | (exit 3) ; false | echo $?, "${pipestat...@]}"'
0, 2 3

-- 
Stephane

Reply via email to