Arretter le script en cas d'erreur.

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

1 réponse

  1. gm
     
    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
    1. Giova
       
      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