Comando de salida en Linux

En Linux, el comando exit se usa para terminar el shell (la sesión de inicio de sesión actual) en el que se ejecuta. Además, de forma similar a un programa en C, el comando de salida se usa en scripts de shell para finalizar el script. Además, devuelve un valor al proceso principal del script.

¿Qué cubriremos?

En esta guía, veremos una descripción general del comando exit en Linux con algunos casos de uso.

El comando de salida y el estado de salida

También puede usar el comando exit para especificar el estado de salida del shell. El estado de salida es un valor numérico que se devuelve al proceso principal cuando finaliza el shell.

El estado de salida se puede utilizar para indicar el éxito o el fracaso del comando. Por ejemplo, un script de shell puede usar el estado de salida para determinar si se deben realizar determinadas acciones en función del éxito o fracaso de un comando.

Para especificar el estado de salida, puede utilizar el comando de salida seguido de un número. Por ejemplo, la salida 0 indica una salida exitosa, mientras que la salida 1 indica una falla.

El comando de salida acepta un solo argumento opcional que se convierte en el estado de salida del script.

Cuando no se pasa ningún argumento, el estado de salida por defecto es el estado de salida del último comando que se ejecuta. Para ver el estado de salida, use el eco » $?» dominio.

Ejemplos de códigos de salida (estado de salida)

El comando de salida es fundamental para indicar que se ha producido un error grave, ya que los procesos de llamada suelen considerar los códigos de salida distintos de cero como casos de error. Si necesita una trampa de error general en sus scripts, intente usar el fragmento de código de salida.

Veamos algunos ejemplos del uso del código de salida en un script y en una terminal:

Ejemplo 1: uso del comando Exit con expresión de archivo

Primero tomemos un ejemplo de un script:

#!/bin/bash
# test-file: Evalúa el estado de un archivo
FILE = / proc / uptime
if [ -e » $FILE » ] ; luego # Comprobar la existencia del archivo.
        si [ -f » $ARCHIVO » ] ; luego # Comprobar si es un archivo normal.
        echo » $FILE es un archivo normal.»
        fi
        si [ -b » $ARCHIVO » ] ; luego # Verifica si es un archivo de bloque
        echo » $FILEes un dispositivo de bloque»
        fi
else
        echo » $FILE no es un archivo regular ni de bloque o puede no existir»
        exit 1
fi
exit

El script realiza una evaluación en el archivo que está asignado a la constante «ARCHIVO» y genera los resultados a medida que se ejecuta.

Primero, verifica si es un archivo normal o un archivo de bloque. Si la condición no se cumple, imprime el mensaje en el bloque else.

El primer comando de salida establece el estado de salida del script en caso de falla (valor de salida como 1). El segundo comando de salida es una expresión formal. Esto significa que cuando el script completa su ejecución hasta el final, tiene el estado de salida del último comando que, en este caso, es el comando de salida. Este último comando de salida dará como resultado el éxito (valor de salida como 0):

Ejemplo 2: uso de comandos de verdadero y falso con el comando de salida

Además, ingresar un simple argumento verdadero o falso hace que la terminal se cierre con un código de estado 0 y muestre 0 como verdadero. Si en cambio proporcionamos una declaración falsa, el estado de salida será 1 ya que las salidas falsas con el código 1. Veamos esto de manera práctica. Primero, emita el comando verdadero y verifique el estado de salida:

$ verdadero

$ eco $?

Ahora, emita el comando falso y verifique nuevamente el estado de salida:

$ falso

$ eco $?

Ejemplo 3: Interrumpir un script con Ctrl+C

Cuando un usuario presiona Control-C, se envía una señal especial conocida como SIGINT. Esto interrumpe la secuencia de comandos o el programa en ejecución, lo que hace que se cierre con el código 130. Tomemos un ejemplo: supongamos que comenzó a buscar un archivo con el comando de búsqueda:

$ encontrar / -vacío

La búsqueda aún continúa. Entonces, de repente lo interrumpiste con «Ctrl+C». Esto hace que el comando se detenga con el código de salida 130.

Ejemplo 4: la variable de shell SHLVL y el comando de salida

Con la variable específica del shell, SHLVL, puede ver a cuántos niveles se encuentra en el shell de Bash. Cada nueva sesión de shell que se abre en un terminal aumenta el número de sesiones, comenzando en 1 para la sesión inicial. Si SHLVL es > 1, el comando de salida cierra la sesión actual. De la misma manera, si SHLVL es = 1, el comando de salida lo desconecta del sistema.

En pocas palabras, cuando escribe «salir» en el símbolo del sistema y presiona Entrar, el shell se cierra (cierra la sesión de inicio de sesión actual) y volverá al shell o al símbolo del sistema desde el que lo inició.

Conclusión

Hemos visto los diferentes casos de uso del comando de salida y la interpretación del estado de salida en cada caso. Hay muchos números de código de salida diferentes para diferentes propósitos. Tenga en cuenta que estos códigos de salida son específicos de Bash. Si tiende a usar otros shells como C-shell o tcsh , los resultados pueden diferir.