..., tes deux scripts s'exécutent dans des environnement indépendants, des nouveaux processus /bin/sh, donc ce que l'un exporte n'affecte pas l'environnement du shell qui l'appelle, et est oublié avant que l'autre ne soit exécuté. Tu peux le vérifier en faisant "shell1 ; shell2" sur ta ligne de commande d'ailleurs.
Si tu ne peux pas fusionner ces scripts (genre faire en sorte que shell2 soit plutôt appelé depuis shell1), alors il faut trouver autre chose qu'une variable d'environnement pour qu'ils communiquent. Genre un fichier temporaire, ou bien des E/S standard avec un pipe entre les deux. Ou bien alors il faut te débrouiller pour que la variable arrive dans l'environnement du shell qui est leur parent à tous les deux, dans ce genre là :
# Sans même parler de crontab...
Posté par tgl . En réponse au message Crontab et sous-shell ?. Évalué à 2.
Si tu ne peux pas fusionner ces scripts (genre faire en sorte que shell2 soit plutôt appelé depuis shell1), alors il faut trouver autre chose qu'une variable d'environnement pour qu'ils communiquent. Genre un fichier temporaire, ou bien des E/S standard avec un pipe entre les deux. Ou bien alors il faut te débrouiller pour que la variable arrive dans l'environnement du shell qui est leur parent à tous les deux, dans ce genre là :
--- shell1:
#!/bin/sh
chaine=chemin/que/je/veux
echo "export chaine='${chaine}'"
--- Utilisation:
eval $(shell1) ; shell2