Commande shell

maiil Messages postés 3 Statut Membre -  
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjouur
qiq1 peut-il me dire ce que fait la commande unix suivante
if [ $? -eq 0]
merci

A voir également:

1 réponse

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Elle vérifie que le code retour ($?) de la dernière commande exécutée est bien égal à zéro (true), autrement dit si la commande s'est bien déroulée...
2
foobar47 Messages postés 13654 Statut Contributeur 533
 
exact. ;-)
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

est bien égal à zéro (true),
Désolé mais je ne suis pas d'accord ;-)

$? n'est pas dans un contexte booleen mais une variable qui contient le code de retour (un entier)

En revanche l'expression [ $? -eq 0] dans le script renvoie true ou false selon la valeur de $?, c'est un test d'égalité entre deux entiers.

Si on considére que zéro vaut (vrai)true alors la comparaison sera faite entre vrai (true) qui est un booleen et 0 qui est un entier, et ce n'est pas normal.

En général une valeur differente de zéro est considerée comme vraie (true) tandis que zéro est considéré comme faux en contexte booleen.
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Désolé mais je ne suis pas d'accord ;-)
C'est ton droit ;-))

Elle vérifie que le code retour ($?) de la dernière commande exécutée est bien égal à zéro (true)
Il fallait interpréter : si la valeur du code retour ($?) est bien égal à zéro, dans ce cas le test ([...]" renvoie "true".

Vu comme ça, c'est bon ? ;-)
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Re,

Vu comme ça, c'est bon ? ;-)
Yes ;-)

Il fallait interpréter
De toute façon j'ai bien compris ce que tu voulais dire, j'ai pensé plutôt à maiil ;-)
0