Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell

Shell Vos questions sur l'utilisation des commandes shell

Réponse
 
Outils de la discussion
Vieux 01/08/2008, 12h07   #1 (permalink)
Membre éclairé
 
Date d'inscription: novembre 2005
Messages: 367
Par défaut Test d'un code retour

Bonjour à tous et excusez d'avance mon inexpérience...

Voilà... je passe, dans un script shell, des sqlplus les uns après les autres... ces sqlplus accèdent à une instance Oracle => Ok
J'ai une question simple à poser :
Je voudrais, entre mes exec sqlplus, tester le code retour oracle du script pécédent afin de continuer ou pas le traitement...
Avez-vous un script ksh de ce genre ?
Genre :
sqlplus system/mamager @/toto/script1
si code retour SQL mauvais => go to KO
sqlplus system/mamager @/toto/script2
..
..
..
KO

Excusez encorer mon ignorance...
genio est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 13h46   #2 (permalink)
Nouveau membre du Club
 
Date d'inscription: avril 2004
Âge: 29
Messages: 53
Par défaut

Bonjour,

Je n'ai pas de script comme demandé, mais vu que la commande sqlplus va envoyer le retour des commandes sur la sortie standard, tu pourrais faire un test qui lit la sortie standard et si ca commence par ORA-, tu fais ton go to.

Ceci bien sûr si tu lances ton script depuis un terminal.
en résumé :
Code :
sqlplus system/mamager @/toto/script1
lit la sortie standard
si commence par ORA, go to OK
__________________
First, they ignore you. Then, they laught at you.Then, they fight you. Then, you win.

Mohandas Gandhi
dokho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 15h01   #3 (permalink)
Membre éclairé
 
Date d'inscription: novembre 2005
Messages: 367
Par défaut

Merci Docko...
mais justement, comment coder la 'lecture de la sortie standard'...
Je suis super nul en shell !
genio est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 15h32   #4 (permalink)
Membre émérite
 
Date d'inscription: septembre 2002
Localisation: Bruxelles
Âge: 30
Messages: 955
Par défaut

Salut,

voici un lien qui pourrait t'aider.

http://okki666.free.fr/docmaster/articles/linux131.html
Mygale1978 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 17h10   #5 (permalink)
Membre éclairé
 
Date d'inscription: novembre 2005
Messages: 367
Par défaut

Merci... j'ai trouvé l'astuce suivante :

Citation:
sqlplus toto/toto@mabase @/monsql.sql >> $FicTrace
grep ORA- /monsql.txt
if [ $? = 0 ]
then
echo "Erreur dans la phase 23 de la mise en prod"
exit 0
fi

sqlplus toto/toto@mabase @/monsql2.sql >> $FicTrace
etc...

Mais l'EXIT me sort de ma fenêtre et me sort d'UNIX...
Comment faire pour sortir proprement de mon script...

Merci d'avance pour ta réponse
genio est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 04/08/2008, 17h57   #6 (permalink)
Nouveau membre du Club
 
Date d'inscription: avril 2004
Âge: 29
Messages: 53
Par défaut

Comment lances-tu ton script ? depuis un terminal local? un terminal distant? un autre script ?
Une solution peut être de rediriger ton echo dans un fichier de log.
Deux autres petites questions : quel shell et quelle version d'unix ?
__________________
First, they ignore you. Then, they laught at you.Then, they fight you. Then, you win.

Mohandas Gandhi
dokho est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/08/2008, 12h11   #7 (permalink)
Membre éclairé
 
Date d'inscription: novembre 2005
Messages: 367
Par défaut

Bonjour...
Je lance mon script via putty de la façon suivante : . script
Mais j'ai trouvé l'astuce car j'ai remplacé les EXIT par des RETURN... et, à chaque erreur, mon script est arrêté mais ça ne me sort pas de ma session UNIX...
genio est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 13/08/2008, 15h45   #8 (permalink)
Invité de passage
 
Date d'inscription: août 2008
Messages: 2
Par défaut

Salut,

Il aurait fallu utiliser la commande suivante pour lancer ton script avec ses "exit" :
./script # Cette commande lance ton script dans un nouveau shell

Plutôt que celle-ci :
. script # Ton script s'execute dans ton shell courant => un exit fermera ta connexion sur la machine unix.
xavier56 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/08/2008, 16h33   #9 (permalink)
Membre éclairé
 
Date d'inscription: novembre 2005
Messages: 367
Par défaut

Merci pour cette réponse... je comprends mieux maintenant...
genio est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide