#1 Le 16/02/2010, à 17:12
- ElGatoNegro
[résolu] Script appellé et 'export'
Salut,
Dans un premier script ('script1'), j'appelle un deuxième script ('script2').
Je souhaiterais que ce script2 renvoie une variable à script1.
J'ai utilisé 'export la_variable' dans ce script2, mais cela ne fonctionne pas...
Y a-t-il quelque chose qui m'échappe?
Voici mes scripts d'essai:
script1:
#!/bin/bash
zenity --info --text="Je suis dans script1 !"
./script2
zenity --info --text="Je suis dans script1 : $mot !"
exit
script2:
#!/bin/bash
mot="toto"; export $mot
zenity --info --text="Je suis dans script2 : $mot!"
exit
Merci d'avance de vos réponses.
Dernière modification par ElGatoNegro (Le 16/02/2010, à 19:37)
"Écart est le palindrome de Tracé" (Alain Damasio)
Hors ligne
#2 Le 16/02/2010, à 18:13
- AnsuzPeorth
Re : [résolu] Script appellé et 'export'
Bjr,
Il faudrait passer par des fichiers texte où sont stockés les valeurs des variables par exemple.
Sortie de abs.traduc:
Un script peut exporter des variables seulement aux processus fils, c'est-à-dire seulement aux commandes ou processus que ce script particulier initie. Un script invoqué depuis la ligne de commande ne peut pas ré-exporter des variables à destination de l'environnement de la ligne de commande dont il est issu. Des processus fils ne peuvent pas réexporter de variables aux processus parents qui les ont fait naître.
Définition : un processus enfant est un sous-processus lancé par un autre processus appelé parent.
Maintenant, il existe peut être une autre astuce que les fichiers texte !
Dernière modification par AnsuzPeorth (Le 16/02/2010, à 18:13)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#3 Le 16/02/2010, à 19:37
- ElGatoNegro
Re : [résolu] Script appellé et 'export'
Merci AnzuzPeorth pour le conseil.
Je suis passé par des fichiers texte, et ça fonctionne.
Evidement, ça a l'avantage de marcher dans les deux sens (père->fils et fils->père), même si la gestion est plus lourde.
(j'ai l'intention d'envoyer plusieurs variable du père au fils et plusieurs variables du fils au père. Je vais voir comment gérer ça)
En attendant, mes scripts deviennent :
script1
#!/bin/bash
zenity --info --text="Je suis dans script1 !"
mot_emis="toto"
echo $mot_emis > var.log
./script2
mot_recu=$(cat var.log)
zenity --info --text="Je suis de nouveau dans script1 : $mot_recu!"
rm var.log
exit
et script2
#!/bin/bash
mot_recu=$(cat var.log)
zenity --info --text="Je suis dans script2 : $mot_recu!"
mot_reemis="tata"
echo $mot_reemis > var.log
exit
Je passe en résolu.
"Écart est le palindrome de Tracé" (Alain Damasio)
Hors ligne