bash - loop - Significado de $? en scripts de shell
for loop in unix shell script (7)
Da salida al resultado del último comando ejecutado de Unix
0 implies true
1 implies false
Que hace
echo $?
significa en la programación Bash?
De http://www.gnu.org/s/bash/manual/bash.html#Special-Parameters
?
Expands to the exit status of the most recently executed foreground pipeline.
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
Del manual: (accesible llamando a man bash
en tu shell)
$?
Se expande al estado de salida de la tubería de primer plano ejecutada más recientemente.
Por convención, un estado de salida de 0
significa éxito y un estado de devolución distinto de cero significa falla. Obtenga más información sobre los 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
Tiene el último código de estado (valor de salida) de un comando.
Ver el Manual Bash en http://www.gnu.org/s/bash/manual/bash.html#Special-Parameters :
? - Se expande al estado de salida de la tubería de primer plano ejecutada más recientemente.
Es un poco difícil de encontrar porque no está catalogado como $?
(el nombre de la variable es "solo" ?
). También vea la sección de estado de salida , por supuesto ;-)
Feliz codificación.
ps 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 crear scripts; Tiendo a usar la siguiente sintaxis
if [ $? -eq 0 ]; then
# do something
else
# do something else
fi
La comparación se debe hacer en iguales a 0 o no es igual a 0
echo $? - Da el ESTADO DE SALIDA del comando ejecutado más recientemente . Este ESTADO DE SALIDA sería muy probablemente un número con CERO implicando Éxito y cualquier valor NON-ZERO indicando Fracaso
? - 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 se ven en el comando echo como $ 1, $ 2, $ *, $ #, etc.).
Espero que esto ayude....