Le Wed, 29 Jul 2009 16:00:23 +0100 (BST),
Patrick Dupre <pd520@???> a écrit :
> Bonjour,
>
> Si je fais source fichier
> ou que je mets
> source ficher
> a l'interieur d'un fichier executable et que je l'execute, je n'ai pas
> le meme resultat.
>
> Qu'est que je dois mettre dans mon executable pour faire un
> source fichier ?
Tu ne peux pas de cette manière !
Quand tu fais « source fichier » depuis ton shell, tu demandes à
celui-ci de lire et exécuter les commandes de ce fichier. Ces commandes
peuvent donc modifier l'environnement de ton shell !
Quand tu lance un exécutable, ton shell crée un nouveau processus qui
va excécuter le fichier demandé (à travers un shell dans ton cas).
Quand l'exécutable se termine, le shell te rend la main, mais il n'a
pas été affecté par tout ce qui s'est passé dans le shell du programme
exécuté et terminé depuis.
C'est pour cela que certains programmes comme les agents SSH / GPG par
exemple, ou encore la commande « lesspipe », affichent sur leur sortie
standard les commandes Shell à évaluer par le shell père afin qu'il
tienne compte de son fils, et qu'on les lance de la manière suivante :
eval $(gpg-agent --daemon)
En espérant avoir été clair,
Fred.