Posted over 5 years ago. Visible to the public. Linked content.
Bash: Find out the exit codes of all piped commands
Bash stores the exitcodestatus of piped commands in the environment variable PIPESTATUS
So you can just echo ${PIPESTATUS[@]}
to get them all.
Copy13:52:30 ✔ claus:~$ ps ax | grep /usr/bin/ruby 13205 pts/20 S+ 0:00 grep --color=auto /usr/bin/ruby 13:52:43 ✔ claus:~$ echo ${PIPESTATUS[@]} 0 0
PIPESTATUS
is an array, so you can get the exitcode of an specific command (first pipe):
Copy13:54:20 ✔ claus:~$ echo ${PIPESTATUS[1]} 0