On Fri, 24 Oct 2003, Beni Cherniavsky wrote:

> Shlomi Fish wrote on 2003-10-12:
>
> > I want that if one of the (first) components of the pipeline exits with an
> > error code, I'll know about it somehow. How?
> >
> info bash --index PIPESTATUS
>

Cool thanks.

> $ true | false | true | false; echo [EMAIL PROTECTED]
> 0 10 1
> $ { true | false | true | false; }; echo [EMAIL PROTECTED]
> 0 1 0 1
>
> However, using parenthesis you launch the whole pipeline in a subshell
> so it won't work:
>
> $ ( true | false | true | false; ); echo [EMAIL PROTECTED]
> 1
>
> Also, it mysteriously seems to be lost after every command in
> interactive mode:
>
> $ true | false | true | false
> $ echo [EMAIL PROTECTED]
> 0
>

Works for me:

shlomi:~$ true | false | false | true
shlomi:~$ echo [EMAIL PROTECTED]
0 1 1 0

Maybe you execute some command after every prompt.

> Although it does work in non-interactive mode:
>
> $ echo $'true | false | true | false\necho [EMAIL PROTECTED]' | sh
> 0 1 0 1
>

Wow, I wasn't aware of the $'' construct. I guess you learn something new
every day. :-)

> If you want a less fragile approach, Oded Arbel gave a good advice.
>

This approach is also dependent on the user shell being bash. I am using
this shell call from a Perl script. In any case, I eliminated the pipeline
from the command and now this is no longer relevant.

Thanks anyway.

Regards,

        Shlomi Fish


----------------------------------------------------------------------
Shlomi Fish        [EMAIL PROTECTED]
Home Page:         http://t2.technion.ac.il/~shlomif/

Writing a BitKeeper replacement is probably easier at this point than getting
its license changed.

        Matt Mackall on OFTC.net #offtopic.


=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to