Saltar al contenido

Significado de $? (signo de interrogación de dólar) en scripts de shell

Joel, miembro de nuestro equipo de trabajo, nos hizo el favor de escribir este escrito ya que conoce perfectamente dicho tema.

Este es el estado de salida del último comando ejecutado.

Por ejemplo el comando true siempre devuelve un estado de 0 y false siempre devuelve un estado de 1:

true
echo $? # echoes 0
false
echo $? # echoes 1

Desde el manual: (accesible llamando man bash en tu caparazón)

$? Se expande al estado de salida de la canalización en primer plano ejecutada más recientemente.

Por convención, un estado de salida de 0 significa éxito, y el estado de retorno distinto de cero significa falla. Aprender más sobre estados de salida en wikipedia.

Hay otras variables especiales como esta, como puede ver en este manual en línea: https://www.gnu.org/s/bash/manual/bash.html#Special-Parameters

$? devuelve el valor de salida del último comando ejecutado. echo $? imprime ese valor en la consola. cero implica una ejecución exitosa, mientras que los valores distintos de cero se asignan a varios motivos de falla.

Por lo tanto, al escribir secuencias de comandos; Tiendo a usar la siguiente sintaxis

if [ $? -eq 0 ]; then
 # do something
else
 # do something else
fi

La comparación se hará de igual a igual 0 o no es igual 0.

** Actualización basada en el comentario: idealmente, no debe usar el bloque de código anterior para comparar, consulte los comentarios y la explicación de @tripleee.

eco $? – Da el ESTADO DE SALIDA del comando ejecutado más recientemente . Este ESTADO DE SALIDA probablemente sea un número con CERO implicando Éxito y cualquier valor DISTINTO DE CERO que indique Falla

? – Este es un parámetro/variable especial en bash.

PS – Da el valor almacenado en la variable “?”.

Algunos parámetros especiales similares en BASH son 1,2,*,# (normalmente visto en el comando echo como $1,$2, $*, $#, etc.,).

Comentarios y puntuaciones

Si te gustó nuestro trabajo, puedes dejar una noticia acerca de qué te ha gustado de este enunciado.

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


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

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