Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 16/02/2010, à 18: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, à 20:37)

Hors ligne

#2 Le 16/02/2010, à 19: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, à 19: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, à 20: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.

Hors ligne

Haut de page ↑