(2 respuestas)
Cerrado hace 2 años.
En mi terminal, imprimió un número aparentemente aleatorio 127
. Creo que está imprimiendo el valor de alguna variable y para comprobar mi sospecha, definí una nueva variable v=4
. Ejecutando echo $?
de nuevo me dio como salida.
Estoy confundido porque esperaba que 4 fuera la respuesta.
Respuesta aceptada:
De man bash
:
ps Se expande al estado de salida de la canalización en primer plano ejecutada más recientemente.
echo $?
devolverá el estado de salida del último comando. Obtuviste 127
ese es el estado de salida del último comando ejecutado con algún error (lo más probable). Los comandos al finalizar con éxito salen con un estado de salida de (más probablemente). El último comando dio salida
desde el
echo $v
en la línea anterior terminó sin error.
Si ejecutas los comandos
v=4
echo $v
echo $?
Obtendrá resultados como:
4 (from echo $v)
0 (from echo $?)
Prueba también:
true
echo $?
Obtendrás .
false
echo $?
Obtendrás 1
.
El true
el comando no hace nada, solo sale con un código de estado ; y el
false
El comando tampoco hace nada, solo sale con un código de estado que indica una falla (es decir, con el código de estado 1
).