(2 réponses)
Fermé il y a 2 ans.
Dans mon terminal, il a imprimé un nombre apparemment aléatoire 127
. Je pense qu'il imprime la valeur d'une variable et pour vérifier mes soupçons, j'ai défini une nouvelle variable v=4
. Exécution de echo $?
m'a encore donné en sortie.
Je suis confus car je m'attendais à ce que 4 soit la réponse.
Réponse acceptée :
De man bash
:
$ ? S'étend jusqu'au statut de sortie du pipeline de premier plan le plus récemment exécuté.
echo $?
renverra l'état de sortie de la dernière commande. Vous avez 127
c'est le statut de sortie de la dernière commande exécutée avec une erreur (très probablement). Les commandes en cas de réussite se terminent avec un état de sortie de (le plus probable). La dernière commande a donné la sortie
depuis le
echo $v
sur la ligne précédente terminée sans erreur.
Si vous exécutez les commandes
v=4
echo $v
echo $?
Vous obtiendrez une sortie sous la forme :
4 (from echo $v)
0 (from echo $?)
Essayez également :
true
echo $?
Vous obtiendrez .
false
echo $?
Vous obtiendrez 1
.
Le true
la commande ne fait rien, elle se termine simplement avec un code d'état ; et le
false
la commande ne fait rien non plus, elle se termine simplement avec un code d'état indiquant un échec (c'est-à-dire avec le code d'état 1
).