Cada programa una vez que termina puede brindar al entorno un Código de salida para que otros programas o el intérprete sepan como concluyó la aplicación.
Tomemos un ejemplo de la vida de un administrador. Es común que la administración sea remota, por lo que vamos a considerar que en nuestra tarea no tenemos conocimiento de lo que esta pasando en una maquina alejada en la que se esta ejecutando arreglar-base-de-datos.
El script arreglar-base-de-datos es un script que corrige posibles errores en una hipotética gran base de datos. Y el resultado de esa corrección interesa, especialmente, si no se pudo arreglar.
Vamos a suponer que hay 2 posibles alternativas:
Para diferenciar cada caso se asigna un código de salida a cada uno. Luego de ejecutar arreglar-base-de-datos se verifica en base al código, los comandos a ejecutar.
El algoritmo sería algo similar a:
if arreglar-base-de-datos then date >> /var/log/BD.registro echo $RESPONSABLE_BD >> /var/log/BD.registro else informar-errores.sh >> /var/log/BD.registro enviar-mail "Errores en BD" lista-encargados lista-directivos fi
Y dónde están los códigos de salida? Bueno, el comando interno2.13 if analiza el código de salida, y si es 0 (cero) ejecuta la lista de comandos después del then, en caso contrario (y si existe) la lista de comandos después del else hasta encontrar un fi.
Por lo tanto el script arreglar-base-de-datos tiene que devolver 0 en caso de éxito. Este es el comportamiento normal de la mayoría de los comandos en Linux y otros Unixes, y un valor para varios errores.
Las paginas man suelen tener una sección llamada Exit Status que contiene los códigos que devuelve el programa.