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.