Vous n'êtes pas identifié(e).
Pages : 1
Ce qui donne si je lance : ttdr a
et si j'appelle tout de suite après la valeur de sortie en faisant : echo $?
j'ai bien :
1
Jusque là ça me va.
Si je lance : ttdr a b
j'ai le retour :
Bon je vois qu'il m'a remplacé le $? de la ligne 12 par 0 et ça me va parce que la commande c'est bien passé.
Mais je ne comprends pas pourquoi il me remplace le $? de la ligne 23 par 1 ?
En effet si je tape directement dans le terminal
puis après la petite engueulade si je rentre tout de suite echo $?
J'ai le retour 127 ! et non pas 1 !
C'est pourquoi je m'attendais à avoir : "ERREUR: la valeur de sortie ne correspond pas à 0 mais à 127".
Merci
Dernière modification par Hypathie (12-03-2014 15:13:43)
Hors ligne
if [ $? == 0 ] ;
«==» n'est pas posix, c'est un bashisme.
c'est = pour les chaînes de caractères et -eq pour les nombres. J'écrirais cela :
Examinons ce morceau de code :
Quelle est la valeur de $? à la ligne 2 ? C'est la valeur de retour de la dernière commande, donc de l'exécution ratée de eccho, donc 127.
Quelle est la valeur de $? à la ligne 5 ? C'est la valeur de retour de la dernière commande, donc de l'exécution de «[ 127 == 0]», donc 1 (0 signifiant vrai dans le shell, et toutes les autres valeurs signifiant faux. Ce qui est exactement le contraire du C).
captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.
Hors ligne
Hors ligne
Pages : 1