Réponses:
$?
passe au statut de sortie du pipeline de premier plan exécuté le plus récemment. Voir la section Paramètres spéciaux du manuel de Bash .
En termes plus simples, il s'agit du statut de sortie de la dernière commande.
La réponse de Cjm est correcte, mais $?
peut être utilisée de manière idiote dans les scripts shell, et je tiens à le mettre en garde. Beaucoup de mauvais scripts ont un motif de code répété:
run_some_command
EXIT_STATUS=$?
if [ "$EXIT_STATUS" -eq "0" ]
then
# Do work when command exists on success
else
# Do work for when command has a failure exit
fi
Si possible (les problèmes de lisibilité sont parfois importuns), vous devriez coder cette situation différemment:
if run_some_command
then
# Do work when command exists on success
else
# Do failure exit work
fi
Cette dernière utilisation est plus rapide, ne contamine pas l'espace de nom de variable du shell avec ce qui équivaut à des variables de temp, peut souvent être beaucoup plus lisible pour les humains et encourage l'utilisation de la "logique positive", la pratique de l'écriture conditionnelle sans négations, qui a des effets cognitifs. simplicité dans la plupart des situations. Il élimine l'utilisation de $?
la plupart des.
En plus de ce que cjm a dit , si la valeur de $?
est 0, le processus précédent s'est terminé normalement (ou avec succès). Sinon, il y a eu une erreur.
diff
quitte avec un 0 si les fichiers comparés sont les mêmes, avec un 1 s'ils sont différents et 2 est une erreur.
$?
-L'état de sortie de la dernière commande exécutée.
$0
-Le nom du fichier du script en cours.
$#
-Le nombre d'arguments fournis à un script.
$$
-Le numéro de processus du shell actuel. Pour les scripts shell, il s'agit de l'ID de processus sous lequel ils s'exécutent.
$? Indiquez-nous l'état d'exécution de la dernière commande d'exécution à l'invite. La valeur '0' indique que la commande a été exécutée avec succès et que '1' signifie échec.
$?
détermine le statut de sortie de la commande exécutée. $
suivi de chiffres (par exemple $1
, $2
etc.) représente les paramètres du script shell.