Programación BASH

Código de salida de Bash del último comando

Código de salida de Bash del último comando
Cuando se ejecuta un comando bash, deja atrás el código de salida, independientemente de la ejecución exitosa o no exitosa. Examinar el código de salida puede ofrecer información útil sobre el comportamiento del comando de última ejecución.

En esta guía, vea cómo verificar el código de salida de bash del último comando y algunos posibles usos del mismo.

Código de salida Bash

Cada comando de UNIX / Linux ejecutado por el script de shell o el usuario deja un estado de salida. Es un número entero que permanece sin cambios a menos que se ejecute el siguiente comando. Si el código de salida es 0, entonces el comando fue exitoso. Si el código de salida es distinto de cero (1-255), significa un error.

Hay muchos usos potenciales del código de salida de bash. El más obvio es, por supuesto, verificar si el último comando se ejecuta correctamente, especialmente si el comando no genera ningún resultado.

En el caso de bash, se puede acceder al código de salida del comando anterior usando la variable de shell “$?".

Comprobación del código de salida de Bash

Inicie una terminal y ejecute cualquier comando.

$ fecha

Compruebe el valor de la variable de shell "$?"Para el código de salida.

$ echo $?

Como el comando "fecha" se ejecutó correctamente, el código de salida es 0. ¿Qué pasaría si hubiera un error??

Intentemos ejecutar un comando que no existe.

$ abcd

Verifique el código de salida.

$ echo $?

Es un valor distinto de cero, lo que indica que el comando anterior no se ejecutó correctamente.

Ahora, eche un vistazo al siguiente comando:

$ muestra de gato.txt | grep "moneda"

Cuando se trabaja con un comando que tiene una o más canalizaciones, el código de salida será el último código ejecutado en la canalización. En este caso, es el comando grep.

Como el comando grep fue exitoso, será 0.

$ echo $?

En este ejemplo, si el comando grep falla, entonces el código de salida será distinto de cero.

$ muestra de gato.txt | grep "abcd"
$ echo $?

Incorporación de código de salida en scripts

El código de salida también se puede utilizar para la creación de scripts. Una forma sencilla de usarlo es asignándolo a una variable de shell y trabajando con él. Aquí hay un script de shell de muestra que usa el código de salida como condición para imprimir una salida específica.

PS!/ bin / bash
$ echo "hola mundo"
$ estado = $?
$ [$ status -eq 0] && echo "comando exitoso" || echo "comando fallido"

Cuando se ejecuta, el script generará la siguiente salida.

Ahora, veamos qué sucede cuando hay un comando no válido para ejecutar.

PS!/ bin / bash
$ comando-aleatorio
$ estado = $?
$ [$ status -eq 0] && echo "comando exitoso" || echo "comando fallido"

Cuando se ejecuta, la salida será diferente.

Explicación del valor del código de salida

Cuando el código de salida es distinto de cero, el valor varía de 1 a 255. Ahora, ¿qué significa este valor??

Si bien el valor es limitado, la explicación de cada valor es única para el programa / script. Por ejemplo, "ls" y "grep" tienen diferentes explicaciones para los códigos de error 1 y 2.

$ man ls

$ man grep

Definición del estado de salida en script

Al escribir un script, podemos definir valores de código de salida personalizados. Es un método útil para una depuración más sencilla. En los scripts de bash, es el comando "salir" seguido del valor del código de salida.

$ salida

Según la convención, se recomienda asignar el código de salida 0 para una ejecución exitosa y usar el resto (1-255) para posibles errores. Al llegar al comando de salida, la ejecución del script de shell terminará, así que tenga cuidado con su ubicación.

Eche un vistazo al siguiente script de shell. Aquí, si se cumple la condición, el script terminará con el código de salida 0. Si no se cumple la condición, entonces el código de salida será 1.

PS!/ bin / bash
$ if [["$ (whoami)" != raíz]]; luego
$ echo "No es usuario root."
$ salida 1
$ fi
$ echo "usuario root"
$ salida 0

Verifique el resultado de ejecutar este script sin privilegios sudo o usuario "root".

PS ./muestra.sh
$ echo $?

Pensamientos finales

Esta guía demuestra qué son los códigos de salida y cómo puede usarlos. También demuestra cómo asignar códigos de salida apropiados en un script bash.

Interesado en bash scripting? Una de las formas más fáciles de comenzar es escribiendo sus propios scripts. Consulte esta sencilla guía sobre cómo escribir un script bash simple.

Computación feliz!

5 mejores juegos de arcade para Linux
Hoy en día, las computadoras son máquinas serias que se usan para jugar. Si no puede obtener la nueva puntuación más alta, sabrá a qué me refiero. En ...
Batalla por Wesnoth 1.13.6 Desarrollo liberado
Batalla por Wesnoth 1.13.6 lanzado el mes pasado, es el sexto lanzamiento de desarrollo en el 1.13.x y ofrece una serie de mejoras, sobre todo en la i...
Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...