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.