Recuperar el 'exit code' de un comando "empipado" (filtrado por un 'pipe')
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 ~$
Lenguaje:
bash
