Précédent   Forum des professionnels en informatique > Systèmes > Linux > Système
Système Vos questions autour de l'administration système
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 09/02/2011, 15h37   #1
Membre du Club
 
Inscription : septembre 2007
Messages : 116
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 116
Points : 42
Points : 42
Par défaut Déclaration de variable dans un script

Bonjour

Je créée un script shell où je fais ceci :

#création variable
expok=`exp system/system@oracle...`

La commande exp (export oracle) se fait bien

Mais si je fais echo $expok, je n'obtiens aucune valeur
il me semblait que si la commande fonctionnait, la variable prenait 0, et si on est en erreur elle prend une autre valeur (derrière je compte faire un if pour créer un fichier de log).

Est-ce que quelqu'un peut me dire où j'ai fait une erreur ?

Merci
CoeurDeSQL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 15h56   #2
Membre Expert
 
Homme
Ingénieur développement logiciels
Inscription : octobre 2008
Messages : 1 375
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : octobre 2008
Messages : 1 375
Points : 2 034
Points : 2 034
Non, dans ton exemple expok contient la sortie (le stdout) de la commande exp. Si tu veux récupérer le code de retour de la commande exp dans expok, tu peux faire :
Code :
1
2
exp system/system@oracle...
expok=$?
matafan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 15h59   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 146
Points : 4 146
Bonjour,

on ne met pas une commande dans une variable pour récupérer son code de retour (0 = succès; >0 = erreur).

si tu veux enregistrer les erreurs éventuelles que retourne une commande, "yaka"* rediriger la sortie d'erreur vers le fichier souhaité :
Code :
commande_qui_echoue 2>>erreur.log
sans espace autour de >>

sinon, comme l'a dit matafan, tester $?
ou directement dans le if, par exemple avec false qui échoue toujours :
Code :
1
2
3
4
if false
then echo "succes"
else echo "erreur"
fi
affichera erreur
nb: la redirection des erreurs ne change pas le code de retour de la commande.

* il suffit de
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h25.


 
 
 
 
Partenaires

Hébergement Web