I have to implement the BASH set -o pipefail
option in a POSIX way so that it works on various LINUX/UNIX flavors. To explain a bit, this option enables the user to
The core of your idea should probably involve something like this:
{ cmd1 ; echo $? > status1 ; } | cmd2 && grep -q '^0$' status1 }
In longer form, that would be:
{ cmd1 ; echo $? > status1 ; } | \
{ cmd2 ; echo $? > status2 ; } | \
# ... and so on \
cmdN && \
# ^ note lack of wrapper \
grep -q '^0$' status1 && \
grep -q '^0$' status2 && \
# ... and so on, to N-1