IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Unix Discussion :

[unix sh] fin de script


Sujet :

Unix

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut [unix sh] fin de script
    Bonjour,

    Mon problème est très certainement basique, un script me permet de faire un choix d'instance à partir d'un fichier généré lors de l'execution du script.

    Mais avant de partir dans cette boucle j'effectue un test afin de savoir si le fichier que je génère 'instance.txt' en début de script contient ou non une chaine de caractère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ps -eaf|grep ora_smon|grep -v grep|cut -c 57-64 > instance.txt
     
    # test la presence d'une instance
    if [ -s "instance.txt" ]; then
      echo ''
    else
      echo 'Aucune instance presente'
      break
    fi
    Si le fichier 'instance.txt' est vide, je souhaite mettre fin au script, j'ai essayé avec 'exit' mais la sortie est plutôt violente et avec break, je sors simplement de la boucle mais je continue dans le script.

    Merci pour votre aide.

    Cdt,
    A.Personnat

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Quelle est ta question ?

    Sinon, ton script est un peu compliqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if [ -z "$(pgrep -f ora_smon)" ]
    then
      echo "Aucune instance présente"
    fi
    ɹǝsn *sıɹɐlos*

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Bonjour

    Merci d'avoir pris un peu de temps pour répondre à ce post, ma question est la suivante, comment sortir d'un script sans sortir d'une session ?

    J'ai essayé la commande exit avec les paramètres 0,1,2 mais sans succès.

    Merci,
    Alain

  4. #4
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    La commande "exit" a pour effet d'interrompre l'exécution du script mais n'intervient pas sur la session de l'utilisateur qui a lancé le script, sauf si le script est "sourcé" par le shell de l'utilisateur, ce qui est peut-être ton cas.

    Comment lance-tu ton script ?
    ɹǝsn *sıɹɐlos*

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Oui effectivement je suis obligé de "sourcer" le script car j'exporte une variable en retour de script et cet export doit être persistent.

  6. #6
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Un if/then/else te permet de n'exécuter le code que dans un cas. Je ne comprends pas ce qui te bloque.
    ɹǝsn *sıɹɐlos*

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Et bien ce qui me bloque est relativement simple, lorsque je passe dans cette première boucle if/then/else, je teste l'existence ou non d'une donnée dans un fichier.

    Si le fichier est vide je dois simplement sortir du script, j'ai donc essayé avec un exit (0,1,2,3) mais à chaque fois, non seulement je sors du script mais en plus je sors de ma session (car, comme tu le soulignais, je 'source' le script).

    Je cherche donc une solution me permettant de sortir du script tout en restant dans ma session.

    J'espère être clair dans mes explications, ce qui n'est pas toujours évident en ayant le nez dans le guidon

  8. #8
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Met le reste de ton code dans l'un des blocs "then" ou "else". Ou ajoute un autre if, c'est pourtant pas compliqué ...
    ɹǝsn *sıɹɐlos*

  9. #9
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    ou alors, si tu n'a vraiment pas envie de structurer ton script, tu peux essayer de remplacer le "exit" par un "exec ${SHELL:-ksh}"
    ɹǝsn *sıɹɐlos*

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    283
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 283
    Points : 122
    Points
    122
    Par défaut
    Oui évidemment, des fois je me demande si je ne suis pas un peu bourrin ..

    Désolé de t'avoir fait perdre ton temps ;-)

  11. #11
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Si tu ne veux pas mettre tout ton code dans un if, tu peux aussi faire une fonction qui fait le boulot. En début de fonction tu teste le fichier, et si tu ne veux pas continuer tu fais un return.

Discussions similaires

  1. Réponses: 9
    Dernier message: 18/01/2012, 18h37
  2. perl ne s'arrete pas a la fin du script
    Par Zwiter dans le forum Langage
    Réponses: 0
    Dernier message: 11/11/2010, 18h07
  3. défiler des images sans fin action script
    Par klamim dans le forum Flash
    Réponses: 0
    Dernier message: 14/03/2009, 18h52
  4. Signal sonore en fin de script
    Par saih_tam dans le forum Simulink
    Réponses: 2
    Dernier message: 06/03/2009, 18h55
  5. Appeler une fonction en fin de script
    Par Oprichnik dans le forum Langage
    Réponses: 4
    Dernier message: 26/08/2007, 23h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo