Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

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

Hors 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.

Hors 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.

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