Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/05/2007, 14h34   #1
Nouveau Membre du Club
 
Avatar de pymouse
 
Homme
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 128
Points : 36
Points : 36
Par défaut Valeurs de retour

Bonjour,

J'aimerai savoir si il est possible d'avoir en retour d'une commande un numero d'erreur correspondant à l'erreur qui c'est produite. Il existe bien le "$?" mais cela renvoi uniquement 0 en cas de success et 1 en cas d'erreur...

Dans mon cas je fait une commande mysl :

Code :
mysql -uroot -p$temp_pass -e "create database ma_base"
Et j'aimerais recuperer les differentes erreurs, tel que "base déja crée", ou "erreur de mot de passe"...Pour l'instant, lorsque j'ai une des ses erreurs j'ai dans ma console :

Code :
1
2
ERROR 1045 (28000): Access denied for user .....
ERROR 1007 (HY000) at line 1: Can't create database 'ma_base' ....
Et-il possible de récuperer le numéro bien précis de l'erreur, pour ensuite pourvoir redemander le mot de passe si l'erreur est : ERROR 1007 (HY000) et dans le cas ou la base et déja existante ( ERROR 1045 (28000) ) ne rien faire.


pym.
pymouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2007, 17h00   #2
Rédacteur/Modérateur
 
Avatar de _Mac_
 
Inscription : août 2005
Messages : 8 306
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 8 306
Points : 8 590
Points : 8 590
Bonjour,

Je ne connais pas la commande mysql ni la façon dont tu veux l'utiliser mais y a peut-être moyen d'arriver à ce que tu veux en analysant ce que sort la commande mysql dans le cas où elle se termine avec un code <> 0. Un truc du genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
# Resultat de l'execution de MySQL
MYSQL=$(mysql ... 2>&1)
if [ $? -gt 0 ]
then
    # Test de l'erreur d'authentification = code de sortie 4
    if echo $MYSQL | grep -q "ERROR 1045 (28000)"
    then
        exit 4
    fi
    ...
fi
__________________

Du détail, du détail, du détail !!!
Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
_Mac_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2007, 10h01   #3
Nouveau Membre du Club
 
Avatar de pymouse
 
Homme
Ingénieur développement logiciels
Inscription : décembre 2004
Messages : 128
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2004
Messages : 128
Points : 36
Points : 36
Merci, j'ai réussi a faire ce que je voulais, je ne pensais pas que l'on pouvais mettre dans une varible le résultat d'une commande. Ce qui est doublement pratique, puisque je ne voulais pas que les erreurs de la commande mysql soient dans la console.

Encore merci,

pym.
pymouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h55.


 
 
 
 
Partenaires

Hébergement Web