#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 - https://www.maccagnoni.eu - https://www.domotego.com
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
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
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.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
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