talvez -o pipefail
possa ajudá-lo, ele propagará qualquer código de saída diferente de zero por meio de uma cadeia de canais.
artigos sobre pipefail:
Como faço para obter o status de saída de um comando em um tubo contido entre colchetes:
(bzcat File_Here | pv -n --size "Size_in_Bytes" | dd of=/dev/sdX) 2>&1
| zenity --title="SD Utility - Write" --progress --text="Writing to SD
Card, This Will take a While" --percentage=0 --no-cancel --auto-close
Como vinculo o status de saída do dd a uma variável?
É para relatar erros, esse script que tenho mostra com sucesso independente de erros ou não.