On Tue, 16 Oct 2001 11:09:10 +0200 (MEST),
Marc SCHAEFER <[EMAIL PROTECTED]> wrote:
> On Tue, 16 Oct 2001, Thierry Lombardot wrote:
>
> > Pourquoi une commande telle que "cd" ne fonctionne pas dans un script shell?
>
> Cela d�coule du concept de sous-processus du shell: *chaque* commande est
> ex�cut�e dans un sous-shell, sauf les commandes internes du shell. Les
> commandes internes sont par exemple: cd.
>
> Un sous-processus ne peut pas modifier l'environnement de son p�re (le
> shell). Donc, la seule fa�on pour que ton cd fonctionne, est d'ex�cuter cd
> dans le p�re.
Une petite pr�cision encore � tout ce qui a �t� dit. Distinguons
- les commandes dont l'action se r�percute de mani�re (plus ou moins)
durable sur l'�tat - global - de la machine (syst�me de fichier, etc)
- les commandes dont l'action se r�percute de mani�re (plus ou moins)
durable sur l'�tat - local - du shell
Dans la premi�re cat�gorie : mkdir, touch, rm,...
Dans la seconde cat�gorie : cd, set, trap,...
Dans le premier cas, il importe peu (en principe) que la commande soit
ex�cut�e par le shell lui-m�me ou par un sous shell, alors que dans le
second cas la diff�rence est fondamentale, puisque les changements sont
perdus lorsque le sous-shell se termine.
Pour le cas de cd, il suffit de se souvenir que cette commande ne fait rien
d'autre que de modifier la valeur de la variable (interne) CWD (current
working directory) du shell courant.
--
___ _ ___ Jean-Albert FERREZ [EMAIL PROTECTED]
' / / \ \ EPFL - Chaire de Recherche Operationnelle - ROSO
,--/-/---\-\---------------------------------------------------------
\_/ / \ \ http://rosowww.epfl.ch/jaf/
--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.