Cuando "empipas" un comando y recuperas el exit code de la forma habitual ($?), recuperas el exit code del comando a la derecha del pipe. Alguna vez nos podría ser necesario recuperar el exit code del comando a la izquierda y esto se hace mediante la variable $PIPESTATUS.
Un ejemplo practico a continuación :]
# comprobamos que $? devuelve la salida del grep
# '0' significa que grep encontró la cadena
~$ sudo apt-get install DUMMY | grep estado
Leyendo la información de estado...
E: No se pudo encontrar el paquete DUMMY
~$ echo $?
0
~$
# aquí comprobamos que 100 es lo que devuelve apt
~$ sudo apt-get install DUMMY
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
E: No se pudo encontrar el paquete DUMMY
~$ echo $PIPESTATUS
100
~$
# comprobamos que $PIPESTATUS devuelve la salida de apt
# '100' significa cualquier cosa menos éxito :]
~$ sudo apt-get install DUMMY | grep estado
Leyendo la información de estado...
E: No se pudo encontrar el paquete DUMMY
~$ echo $PIPESTATUS
100
~$