Passage de variables

Résolu
Bonjour, j'ai un problème de récupération de variable. J'ai un script1 qui appelle un script2 avec une variable en paramètre par exemple:
Dans script1:
instructions ....
./chemin/script2 $TOTO
instructions.

Dans script2 je vais récupérer la valeur de TOTO dans $1. Jusque là pas de problème.

Maintenant c'est différent, voici ce que je veux faire:

J'ai un script1 qui appelle un script2, dans le script2 je veux positionner la variable TOTO et récupérer cette valeur dans script1

Dans Script1
instructions ...
./chemin/script2
récupérer la valeur TOTO positionnée dans script2
instructions ...

Dans script2
TOTO="123456"

ça je ne sais pas faire, est-ce que quelqu'un aurait une solution ?

Merci pour votre aide.

5 réponses

  1. Bonjour, ok merci à tous, j'ai regardé la commande source maintenant ça marche, j'ai un autre problème sur ce sujet mais qui est différent, je vais donc ouvrir un autre post.
    Encore merci pour votre aide.
    1. Bonsoir, bon j'ai regardé ce que tu me dis pour mon hictoire de variable que je dois récupérer mais j'avoue ne pas comprendre ce que je dois faire !!
      Dans script1.sh j'ai mis ce que tu me dis: source script2.sh &>/dev/null
      mais ensuite la variable qui est positionnée dans script2.sh je ne sais pas comment la récupérer dans script1.sh
      si tu peux éclairer ma lanterne, je te remerci
      1. Contributeur
        Salut,

        Si ta variable dans script2.sh s'appelle TOTO, il suffit de l'appeler par son petit nom depuis scrip1.sh :
        echo "${TOTO}"
    2. Bonjour, merci pour ta réponse, je regarde et je dirais ce qu'il en est dès que possible.
      J'ai une autre question sur les script shell, j'ai un script qui va lire un fichier .txt
      Quand je lance ce script dans une console root il n'y a pas de problème, le fichier est bien lu, par contre quand je lance ce même script depuis cron en root également, il semble que le fichier ne soit pas lu !!!! pourtant ce fichier est en chmod 755.
      Si quelqu'un a une idée, merci pour votre aide.
      1. Contributeur
        Salut,

        La commande
        source
        (ou .) du bash devrait faire l'affaire.

        $ cat script.sh 
        #!/bin/bash

        source script2.sh &>/dev/null

        echo "La variable var de script1.sh contient : ${var}"


        $ cat script2.sh 
        #!/bin/bash

        var="toto"

        echo "====================="
        echo "var contient : ${var}"
        echo "====================="


        $ ./script.sh 
        La variable var de script1.sh contient : toto

        1. Salut

          Si tu es patient(e) , attend le passage de zipe31,dubcek, c'est des spécialistes ,il sauront te diriger