Linux - script bash - Recup. code erreur sql
Résolu
B@|-|@N
Messages postés
386
Date d'inscription
Statut
Membre
Dernière intervention
-
toto -
toto -
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 :
Pour l'instant la requete me renvoie le message suivant :
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
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
A voir également:
- Linux - script bash - Recup. code erreur sql
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
2 réponses
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>":
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
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
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
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