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.

Appelle ton script avec
   source ./script

(sous bash: . ./script)

cela lancera ton script dans le shell courant (pas dans un sous-shell).

Par exemple avec le client ftp, pour cr�er un r�pertoire local tu utilises

   !mkdir repertoire

(! lance un sous-shell)

mais bien s�r pour changer de r�pertoire local il faut une commande
interne: lcd

> cd /mon_repertoire/un_autre_repertoire/

Alternatives:

   - une fonction de bash ou de tcsh

   - un alias

PS: tcsh est � abandonner comme langage de script; et son interface
    n'est plus non plus aujourd'hui, avec des shells comme bash ou zsh,
    une r�f�rence.


--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se d�sabonner aussi.

Répondre à