Arretter le script en cas d'erreur.

Fermé
Giova - 15 juin 2011 à 17:05
 Giova - 16 juin 2011 à 19:40
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
A voir également:

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
0
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
0