2011-08-30 16 views
57

¿Qué significa

echo $? 

en la programación de fiesta?

+0

Unix en una cáscara de nuez es una publicación bien vale la pena la compra en mi opinión. – wberry

Respuesta

64

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: (acessible llamando man bash en su concha)

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

Por convenio, un estado de salida de 0 significa éxito, y el estado de retorno distinto de cero significa el fracaso. Obtenga más información acerca de los estados de salida on wikipedia.

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

5

Cuenta con el último código de estado (valor de salida) de un comando.

0

Ver The Bash Manual bajo 3.4.2 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, ya que no aparece como $? (el nombre de la variable es "sólo" ?). También vea la sección exit status, por supuesto ;-)

Happy coding.

1

envía el resultado del último comando ejecutado UNIX

0 implies true 
1 implies false 
4

$? 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; Yo 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

4

echo $? - Otorga el ESTADO DE SALIDA del comando más recientemente ejecutado.Esta ESTADO DE SALIDA sería muy probable que haya un número con cero implica éxito y cualquier valor distinto de cero indica El fracaso

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

$? - Proporciona 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 ....

Cuestiones relacionadas