Posez votre question Signaler

Linux - script bash - Recup. code erreur sql [Résolu]

B@|-|@N 388Messages postés 15 janvier 2004Date d'inscription - Dernière réponse le 26 févr. 2008 à 14:46
Bonjour à tous et à toutes.

J'ai un petit problème dans le développement d'un script bash sous Linux (distribution RedHat 9.0).

#=====================

Voilà comment je procède :
req_sql="
        USE maBase;\n
        SELECT monChamp
        FROM maTable
        WHERE monChamp='maValeur'
        INTO OUTFILE 'chemin/monFichier'
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\n';\n
";
echo -e $req_sql > chemin/requete.sql;
$mysql_dir/mysql -u monLogin --password=monPass < $data_dir/requete.sql;
if [ -e $data_dir/requete.sql ]; then rm -f $data_dir/requete.sql; fi

Pour l'instant la requete me renvoie le message suivant :
ERROR 1 (HY000) at line 2: Can't create/write to file '/home/omclinux/topologie/data1/tmp.txt' (Errcode: 13)


Et je voudrais récupérer le code erreur à la fin afin de faire un perror dessus pour me renvoyer un message explicatif.

Donc comment puis-je récupérer ce code erreur ? Comment puis-je récupérer le message d'erreur tout court, après je peux me débrouiller.

#=====================

Une autre question, pendant que j'y suis.
Avec la commande echo dans un script bash, comment écrire un message en couleur (rouge ou vert par exemple) ?

#=====================

Merci d'avance pour vos réponses.

B@|-|@N

Close the world.||.txen eht nepO
Lire la suite 

Linux - script bash - Recup. code erreur sql »

2 réponses
Réponse
+1
moins plus
Salut,

Le code d'erreur attribué par défaut est "2", donc en général il suffit de rediriger ce code dans un fichier en ajoutant en fin de commande "2>":
[jp@Mandrake tmpfs]$ ls
[jp@Mandrake tmpfs]$ ls moi 2> ficerror.txt
[jp@Mandrake tmpfs]$ ls
ficerror.txt
[jp@Mandrake tmpfs]$ cat ficerror.txt 
ls: moi: No such file or directory
[jp@Mandrake tmpfs]$ 
Utiliser ">>" pour éviter l'écrasement et ajouter à la suite...

Pour la coloration du shell :
http://www.bsdbooks.net/shells/scripting/fr/colorizing.html

Un bon bouquin sur le sujet (shell) :
http://tinyurl.com/5onz7
Ajouter un commentaire
Réponse
+1
moins plus
pour colorer il faut ajouter le parametre "-e" à la commande echo pour qu'elle puisse comprendre ce que vous allez lui sortir...


par exemple, étant donné les variables suivantes dans votre script :

# COULEURS
COLOROFF="\033[1;0m" # standart color
GREENCOLOR="\033[1;32m" # green
WHITECOLOR="\033[1;37m" # white
BLUECOLOR="\033[1;36m" # blue
DARKBLUECOLOR="\033[1;34m" # darkblue
REDCOLOR="\033[1;31m" # red
LILACOLOR="\033[1;35m" # lilac
YELLOWCOLOR="\033[1;33m" # yellow

vous pouvez mettre

echo -e "${DARKBLUECOLOR}texte colore${COLOROFF} et texte non colore"

Si vous mettez pas le "-e" ca marchera pas, ca vous affichera la valeur de la variable comme du texte lambda.

bon script
Ajouter un commentaire
Ce document intitulé « Linux - script bash - Recup. code erreur sql » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?