Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

#1 Le 16/03/2013, à 21:26

falke

Comment exploiter des codes exit pour déboguer un script

Salut,

bon j'ai fait un script et je me suis bien pris la tête à le déboguer.

l'utilisation de différents code exit semble intéressante mais je ne comprends pas comment m'en servir et comment récupérer le code retour là où ça a planté.

Quelqu'un pourrait-il me montrer dans un court example ?

merci pour votre aide

Hors ligne

#2 Le 16/03/2013, à 22:18

tiramiseb

Re : Comment exploiter des codes exit pour déboguer un script

Pour avoir l'exemple le plus simple possible :

Soit les commandes "true" et "false", qui retournent respectivement les codes d'erreur 0 et 1.
Le code d'erreur du programme précédent est stocké dans la variable $?.

Par conséquent
- si tu exécutes "true", alors $? est égal à 0 ;
- si tu exécutes "false", alors $? est égal à 1.

true
if [ "$?" -eq "0" ]
then
  echo "C'est cool, true a retourné le code d'erreur 0"
elif [ "$?" -eq "1" ]
then
  echo "true a retourné le code 1 ; c'est impossible !!!"
fi

Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#3 Le 16/03/2013, à 23:22

pingouinux

Re : Comment exploiter des codes exit pour déboguer un script

Bonsoir,
Autre exemple simple, un peu différent :

$ cat test_exit.sh
exit $1
$ ./test_exit.sh 3; echo $?
3
$ ./test_exit.sh 0; echo $?
0

En ligne

#4 Le 17/03/2013, à 11:58

falke

Re : Comment exploiter des codes exit pour déboguer un script

pingouinux a écrit :

Bonsoir,
Autre exemple simple, un peu différent :

$ cat test_exit.sh
exit $1
$ ./test_exit.sh 3; echo $?
3
$ ./test_exit.sh 0; echo $?
0

Donc clairement ça veut dire qu'il faudrait placer un exit dans chaque fonction et/ou portion de code que l'on souhaite tester ?

Hors ligne

#5 Le 17/03/2013, à 12:15

pingouinux

Re : Comment exploiter des codes exit pour déboguer un script

falke    #4 a écrit :

Donc clairement ça veut dire qu'il faudrait placer un exit dans chaque fonction et/ou portion de code que l'on souhaite tester ?

Pas forcément. S'il n'y a pas d'exit, un script renvoie le code de retour de la dernière commande exécutée. Ajouter un ou plusieurs exit permet d'imposer le code de retour.

En ligne

#6 Le 17/03/2013, à 16:58

tiramiseb

Re : Comment exploiter des codes exit pour déboguer un script

Attention, si c'est pour traiter les retours de différentes fonctions au sein d'un seul et même script, il faut utiliser return, pas exit.


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXème siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

Hors ligne

#7 Le 17/03/2013, à 17:57

elendil

Re : Comment exploiter des codes exit pour déboguer un script

Utiliser exit pour débogguer n'est pas la meilleure solution à mon avis.
exit quitte le script et renvoie une valeur.
Tu peux aussi faire différent 'echo' pour savoir ce qui est exécuter dans ton script avec le contenu des variables pour debogguer une situation.

Hors ligne

Haut de page ↑