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

Shell et commandes GNU Discussion :

retourner une valeur


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 49
    Par défaut retourner une valeur
    J'ai 2 programmes bash shell A et B.
    A appelle B,
    B travaille sur une variable V.
    Comment faire pour que A recupére la valeur V traitée dans B?

    Merci

  2. #2
    Membre éprouvé
    Inscrit en
    Novembre 2007
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 129
    Par défaut
    Salut,

    Je pense qu'en shell classique ceci n'est pas possible.

    Par contre en ksh si je mes souvenirs sont bon
    tu peu retourner une valeur " return 5" meme a l'exterieur d'une fonction

    avec le sh
    ou encore dans le script A : exit 5

    et dans le deusieme script tu fait resultat=$(exec(scriptA.sh))

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 149
    Par défaut
    J'ajouterais que le code retour est compris entre 0 et 255.

    Une autre solution permet d'outrepasser ces limites en exportant la variable dans l'environnement, en executant le shell A dans l'instance du shell B.

    Ce qui donnerait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    . shellA.ksh
    # si shell a fait un export VAR_RETOURA
    VAR_RETOURB=VAR_RETOURA
    en ksh, sinon en bash il me semble qu'il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    source shellA.ksh
    VAR_RETOURB=VAR_RETOURA

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Attention, les enfants : le code de retour sert à donner des informations d'état (le programme s'est bien passé, il y a eu une erreur X, etc.), pas à renvoyer le résultat d'un traitement. Quand tout se passe bien, le code de retour attendu est 0. Si ce n'est pas 0, c'est qu'il y a eu un pb. Chaque script utilise alors un code > 0 pour indiquer le type d'erreur de son choix.

    La façon classique de récupérer le résultat d'une commande c'est de passer par la sortie standard, exactement comme on le fait pour toutes les commandes classiques Unix. Exemple :
    B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
     
    # On envoi le resultat sur la sortie standard
    echo $((1+2))
    # et surtout pas exit $((1+2)) !!
    A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash
     
    ...
    # On lance le traitement de B et on recupere le resultat sur l'entree standard
    resultat_b=`B`

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 149
    Par défaut
    Ah oui ca c'est clairement plus propre = )

Discussions similaires

  1. [vb.net] retourner une valeur dans l'evenement click
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/05/2005, 13h06
  2. [VB.Net]Procédure Stocké retournant une valeur
    Par waldo2188 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/05/2005, 12h56
  3. Réponses: 7
    Dernier message: 15/03/2005, 14h44
  4. fonction retournant une valeur
    Par ryan dans le forum ASP
    Réponses: 4
    Dernier message: 06/09/2004, 17h45
  5. Retourner une valeur avec une fonction
    Par stephtbest dans le forum ASP
    Réponses: 4
    Dernier message: 31/10/2003, 16h37

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