2012-04-05 29 views
14

Duplicar posible:
What does “$?” give us exactly in a shell script?

¿Qué significa $? en una escritura del golpe? Ejemplo a continuación:

#!/bin/bash 
# userlist.sh 

PASSWORD_FILE=/etc/passwd 
n=1   # User number 

for name in $(awk 'BEGIN{FS=":"}{print $1}' < "$PASSWORD_FILE") 

do 
    echo "USER #$n = $name" 
    let "n += 1" 
done 

exit $? 
+1

El valor de retorno/estado de salida del comando ejecutado más recientemente. –

+1

Ah, perdón por el duplicado. ps es difícil de buscar – Meekohi

Respuesta

17
$? 

es el último error (o el éxito) devueltos:

$? 
1: command not found. 
echo $? 
127 

false 
echo $? 
1 

true 
echo $? 
0 

La salida en el extremo:

exit $? 

es superflua, porque la escritura del golpe saldrá con ese estado de todos modos. Citando la página man:

El estado de salida de Bash es el estado de salida del último comando ejecutado en el script.

+0

Gracias por agregar que la salida $? es superfluo – trueCamelType