Saltar al contenido

¿Cuál es el significado de exit 0, exit 1 y exit 2 en un script bash?

Nuestro team de especialistas luego de muchos días de investigación y de juntar de datos, obtuvieron la respuesta, deseamos que resulte de gran utilidad en tu proyecto.

Solución:

Aquí hay una buena referencia para los códigos de salida de shell:

Exit code 0        Success
Exit code 1        General errors, Miscellaneous errors, such as "divide by zero" and other impermissible operations
Exit code 2        Misuse of shell builtins (according to Bash documentation)        Example: empty_function() 

Advertencia: el uso del código de salida adecuado no es un requisito y el shell no lo impone. Los desarrolladores pueden ignorar la guía si lo consideran prudente.

Utilizando exit y un número es una forma práctica de señalar el resultado de su guión. Imita la forma en que los comandos bash generan un código de retorno. Con los comandos bash, el código de retorno 0 generalmente significa que todo se ejecutó correctamente y sin errores. exit también hace que su secuencia de comandos detenga la ejecución en ese punto y regrese a la línea de comando.

Cualquier código de retorno mayor que 0 indica un error de algún tipo, aunque a veces el error no es crítico, para cada comando debería ser posible encontrar alguna documentación que le diga qué significa cada código de retorno.

Puede obtener el código de retorno del último comando bash usando la variable de shell $? al igual que:

$ echo "something"
something
$ echo $?
0
$ cp
cp: missing file operand
Try 'cp --help' for more information.
$ echo $?
1

Cuando usa esto en un script, puede consultar el código de retorno de la misma manera cuando termina de ejecutarse. Entonces verás que tener:

exit 2
exit 0

Es una especie de sin sentido, ya que nunca se puede llegar a la exit 0 parte.

Todo por sí mismo, exit implica un valor de salida de cero, o la finalización exitosa de su secuencia de comandos. No tiene que agregar el argumento cero al comando de salida para indicar que se completó con éxito. Su secuencia de comandos puede (o probablemente lo hará) salir con éxito aunque prueba una condición errónea. En este caso, desea específicamente que salga con la condición de error (o 1).

echo -e "Enter numbers 1-4" c"
read NUM
case $NUM in 
    1) echo "one";;
    2) echo "two";;
    3) echo "three";;
    4) echo "four";;
    *) echo "invalid answer"
       exit 1;;
esac

los exit El comando en la última línea no tiene que estar allí en absoluto. Podría llamarse con el cero o no llamarse en absoluto. Sin especificar el argumento 1 al comando exit la respuesta en todos estos casos a la echo $? sería cero.

Sin embargo, al especificar el argumento 1 para el comando de salida, la respuesta al echo $? sería 1. Por lo tanto, use el argumento 1 para el comando de salida cuando desee especificar que el script ha finalizado con una condición de error.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *