Pourquoi avoir executer le script suivant, la var CVSROOT n'est pas
positionnée à TEST lorsque je l'évalue au prompt ? Si j'exécute le
script : $ zsh test.zsh, CVSROOT à la valeur TEST, une fois le script
terminé, si je fais ensuite, au prompt, echo $CVSROOT, CVSROOT a
conservé l'ancienne valeur ?
Pourquoi avoir executer le script suivant, la var CVSROOT n'est pas positionnée à TEST lorsque je l'évalue au prompt ? Si j'exécute le script : $ zsh test.zsh, CVSROOT à la valeur TEST, une fois le script terminé, si je fais ensuite, au prompt, echo $CVSROOT, CVSROOT a conservé l'ancienne valeur ?
export change l'environement du processus courant (le shell qui exécute export), ainsi que celui des processus fils qui seront lancés à partir de maintenant par ce shell là.
export ne change aucunement l'environement des processus pères (ni celui des fils lancés avant l'export).
Quand tu fais zsh test.zsh (ou ./test.zsh) tu lances un nouveau shell, qui se quitte à la fin du script.
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
-- Gael Le Mignot "Kilobug" - - http://kilobug.free.fr GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959 Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA
Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org
Pourquoi avoir executer le script suivant, la var CVSROOT n'est pas
positionnée à TEST lorsque je l'évalue au prompt ? Si j'exécute le
script : $ zsh test.zsh, CVSROOT à la valeur TEST, une fois le script
terminé, si je fais ensuite, au prompt, echo $CVSROOT, CVSROOT a
conservé l'ancienne valeur ?
export change l'environement du processus courant (le shell qui
exécute export), ainsi que celui des processus fils qui seront lancés
à partir de maintenant par ce shell là.
export ne change aucunement l'environement des processus pères (ni
celui des fils lancés avant l'export).
Quand tu fais zsh test.zsh (ou ./test.zsh) tu lances un nouveau shell,
qui se quitte à la fin du script.
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un
autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
--
Gael Le Mignot "Kilobug" - kilobug@nerim.net - http://kilobug.free.fr
GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959
Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA
Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org
Pourquoi avoir executer le script suivant, la var CVSROOT n'est pas positionnée à TEST lorsque je l'évalue au prompt ? Si j'exécute le script : $ zsh test.zsh, CVSROOT à la valeur TEST, une fois le script terminé, si je fais ensuite, au prompt, echo $CVSROOT, CVSROOT a conservé l'ancienne valeur ?
export change l'environement du processus courant (le shell qui exécute export), ainsi que celui des processus fils qui seront lancés à partir de maintenant par ce shell là.
export ne change aucunement l'environement des processus pères (ni celui des fils lancés avant l'export).
Quand tu fais zsh test.zsh (ou ./test.zsh) tu lances un nouveau shell, qui se quitte à la fin du script.
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
-- Gael Le Mignot "Kilobug" - - http://kilobug.free.fr GSM : 06.71.47.18.22 (in France) ICQ UIN : 7299959 Fingerprint : 1F2C 9804 7505 79DF 95E6 7323 B66B F67B 7103 C5DA
Member of HurdFr: http://hurdfr.org - The GNU Hurd: http://hurd.gnu.org
Stephane Chazelas
2004-09-20, 12:44(+02), Gaël Le Mignot: [...]
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
Une alternative avec zsh est de mettre la commande dans le $fpath au lieu du $path. Le script pourra alors etre consideré comme une fonction autoloadable qu'on peut eventuellement precompiler.
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un
autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
Une alternative avec zsh est de mettre la commande dans le $fpath
au lieu du $path. Le script pourra alors etre consideré comme
une fonction autoloadable qu'on peut eventuellement precompiler.
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
Une alternative avec zsh est de mettre la commande dans le $fpath au lieu du $path. Le script pourra alors etre consideré comme une fonction autoloadable qu'on peut eventuellement precompiler.
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
Une alternative avec zsh est de mettre la commande dans le $fpath au lieu du $path. Le script pourra alors etre consideré comme une fonction autoloadable qu'on peut eventuellement precompiler.
J'ai résolu le problème en définissant une fonction dans mon
.zshrc.
Laurent
On 2004-09-21, Stephane Chazelas <cette.adresse@est.invalid> wrote:
2004-09-20, 12:44(+02), Gaël Le Mignot:
[...]
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un
autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
Une alternative avec zsh est de mettre la commande dans le $fpath
au lieu du $path. Le script pourra alors etre consideré comme
une fonction autoloadable qu'on peut eventuellement precompiler.
Si tu veux évaluer les lignes dans le shell courant, sans en lancer un autre, il faut faire: source ./test.zsh (ou . ./test.zsh)
Une alternative avec zsh est de mettre la commande dans le $fpath au lieu du $path. Le script pourra alors etre consideré comme une fonction autoloadable qu'on peut eventuellement precompiler.