Arretter le script en cas d'erreur.
Giova
-
Giova -
Giova -
Bonjour,
Quelqu'un pourrait il m'expliquer SVP, comment on fait pour arretter un script lorsqu'une erreur se produit dedans?
J'ai bien compris qu'il y avait des canaux, dont stdout = 1 et error = 2
que 2>&1 est supposé rediriger les erreurs vers la console.
Mais je n'arrive pas à l'utiliser dans mon script :
returnedStr= 'mysql --Chaine de connection -- < monScript.sql >&1'
if ! $returnedStr ;
then
echo ERREUR LECTURE DUMP : $returnedStr
exit 1
else
echo cool $returnedStr
fi
ca me retourne toujours "cool" meme si une erreur se produit dans la ligne mysql :(
Merci je nage là :D
Quelqu'un pourrait il m'expliquer SVP, comment on fait pour arretter un script lorsqu'une erreur se produit dedans?
J'ai bien compris qu'il y avait des canaux, dont stdout = 1 et error = 2
que 2>&1 est supposé rediriger les erreurs vers la console.
Mais je n'arrive pas à l'utiliser dans mon script :
returnedStr= 'mysql --Chaine de connection -- < monScript.sql >&1'
if ! $returnedStr ;
then
echo ERREUR LECTURE DUMP : $returnedStr
exit 1
else
echo cool $returnedStr
fi
ca me retourne toujours "cool" meme si une erreur se produit dans la ligne mysql :(
Merci je nage là :D
1 réponse
-
Bonjour,
Pour détecter une erreur, il faut interroger la variable $?
Celle-ci contient le code retour de la dernière commande exécutée. Un code-retour 0 indique un succès, tout autre code retour indique une erreur.
Par exemple :mysql --chaine-- <script.sql 2>&1 if [ $? -eq 0 ] ; then echo cool else echo erreur fi-
Merci pour votre réponse. J'ai egallement trouvé la solution sur un autre forum. Voici la syntaxe :
returnedstr="'mysql --chaine-- <script.sql 2>&1'"
On m'avait egallement donné ceci mais qui ne passe pas sur mon os:
returnedstr=$(mysql --chaine-- <script.sql 2>&1)
if [[ -n "$returnedStr" ]] ; then
echo ERREUR
fi
-