GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial de estado de salida de Bash Shell con ejemplos prácticos

En nuestro artículo de introducción a bash, aprendimos que un archivo de script de shell contiene una lista de comandos que ejecutará el intérprete de shell. En este artículo, repasemos los comandos de shell y su funcionamiento interno.

Un comando es una secuencia de palabras. La primera palabra indica el comando que se ejecutará y las palabras restantes se pasan como argumentos, donde los argumentos pueden ser las opciones o los parámetros del comando.

Algunos de los comandos comunes de Unix que se ejecutan en la línea de comandos son comandos de shell. Por ejemplo, comando ls, lpr y grep.

$ ls -alF

$ lpr filename

$ grep "string" filename

Estado de salida del comando Shell

El valor de retorno de un comando es su estado de salida, o 128 + N si el comando finaliza con la señal N. El estado de salida se utiliza para comprobar el resultado (éxito/fracaso) de la ejecución del comando. Si el estado de salida es cero, entonces el comando es exitoso. Si el comando falla, el estado de salida será distinto de cero.

Valor de salida Estado de salida
0 (cero) Éxito
Distinto de cero Fracaso
2 Uso incorrecto
127 Comando no encontrado
126 No es un ejecutable

$? Variable de caparazón

El nombre de la variable de shell $? es una variable integrada especial que tiene el estado de salida del último comando ejecutado.

  • Después de la ejecución de la función de shell, $? devuelve el estado de salida del último comando ejecutado en una función.
  • Después de la ejecución del script de shell, $? devuelve el estado de salida del último comando ejecutado en el script.

Ejemplo de secuencia de comandos de Shell que explica el estado de salida del comando Shell

El siguiente script de shell exitstatus.sh muestra ejemplos de varios estados de salida de comandos de shell.

$ cat exitstatus.sh
#! /bin/bash

echo -e "Successful execution"
echo -e "====================="
echo "hello world"
# Exit status returns 0, because the above command is a success.
echo "Exit status" $? 

echo -e "Incorrect usage"
echo -e "====================="
ls --option
# Incorrect usage, so exit status will be 2.
echo "Exit status" $? 

echo -e "Command Not found"
echo -e "====================="
bashscript
# Exit status returns 127, because bashscript command not found
echo "Exit status" $? 

echo -e "Command is not an executable"
echo -e "============================="
ls -l execution.sh
./execution.sh
# Exit status returns 126, because its not an executable.
echo "Exit status" $?

Ahora, ejecute el exitstatus.sh anterior para ver los distintos estados de salida proporcionados por el script de shell de muestra.

$ bash exitstatus.sh
Successful execution
=====================
hello world
Exit status 0
Incorrect usage
=====================
ls: unrecognized option `--option'
Try `ls --help' for more information.
Exit status 2
Command Not found
=====================
exitstaus.sh: line 15: bashscript: command not found
Exit status 127
Command is not an executable
=============================
-rw-r--r-- 1 root root 659 Mar  9 13:36 execution.sh
exitstatus.sh: line 21: ./execution.sh: Permission denied
Exit status 126

Nota:Comprobar el valor de retorno de una función o un comando es una de las principales responsabilidades de un programador. Esto debería convertirse en su segunda naturaleza al escribir cualquier código.


Linux
  1. vim Tutorial con ejemplos de comandos

  2. 15 útiles comandos integrados de Bash Shell (con ejemplos)

  3. Comando rsync de Linux con ejemplos prácticos

  4. Comando Echo con Ejemplos Prácticos

  5. '&&' vs. '&' con el comando 'test' en Bash

Bash Scripting - Comando Printf explicado con ejemplos

Comando de espera en Linux explicado con ejemplos prácticos

Tutorial de comando de búsqueda de Linux (con ejemplos)

Tutorial de introducción a Bash Scripting con 5 ejemplos prácticos

El tutorial Ultimate Tar Command con 10 ejemplos prácticos

Tutorial de funciones de Bash Shell con 6 ejemplos prácticos