On Mon, 2018-11-05 at 15:00 +0100, Dario Lesca wrote:
> When I concatenate 2 or more shell command with pipe (|), I get only
> the status of last one.
> 
> For example: "some-cmd | logger -t "some-cmd messages:"; echo $?"
> 
> If "some-cmd" fail with status !=0 I get always status of last one,
> in this case 0
> 
> In my case if the first command fail, I must send a warning message
> 
> A more simple example is: "false | true"
> 
> I want get status 1, of first command (false), not 0 (true)
> 
> I have also try "sh -e -c 'false || exit 2|true'; echo $?" but I get
> always 0
> 
> How to I get first status and break the chains of pipes ?

Assuming that your shell is bash:
        set -o pipefail
_______________________________________________
users mailing list -- users@lists.fedoraproject.org
To unsubscribe send an email to users-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/users@lists.fedoraproject.org

Reply via email to