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". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#1 Le 16/03/2013, à 20: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, à 21: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 XXe siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#3 Le 16/03/2013, à 22: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

Hors ligne

#4 Le 17/03/2013, à 10: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, à 11: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.

Hors ligne

#6 Le 17/03/2013, à 15: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 XXe siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#7 Le 17/03/2013, à 16: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 ↑