Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Script shell et cd
Envoyé par: oliveuh

Bonjour,

Je cherche à écrire un script tout simple me permettant de changer de répertoire. Mais étrangement, il est sans effet malgré le fait que la commande echo me revoit bien la chaîne attendue.
Voilà à quoi ressemble mon script :
#!/bin/sh
pouet='/usr/local'
echo $pouet
cd $pouet

Pourriez-vous m'expliquer pourquoi la commande cd est sans effet ?
Merci.

Poste le Sunday 9 December 2007 21:55:45
Répondre     Citer    
Re: Script shell et cd

Le changement de répertoire est relatif au shell qui éxécute le script ! c'est donc "normal"

Un script shell est interprété dans un shell qui lui est propre !

C'est en forgeant qu'on devient forgeron, et c'est en sciant que Léonard De Vinci !

Mon site perso

Poste le Sunday 9 December 2007 22:02:30
Répondre     Citer    
Re: Script shell et cd
Envoyé par: oliveuh

Ok.
Donc c'est imposible de changer de répertoire autrement qu'en utilisant la commande cd dans un shell. C'est bien cela ?

Poste le Sunday 9 December 2007 22:10:46
Répondre     Citer    
Re: Script shell et cd

Le répertoire courant est propre à chaque processus (et hérité d'un processus père vers ses processus fils).

Un processus peut changer de répertoire courant par l'appel système chdir.

Un shell interface cet appel système par la commande cd (qui est donc nécessairement builtin = cablée dans le shell).

RTFM
man execve
man chdir
man fork


----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Monday 10 December 2007 13:44:15
Répondre     Citer    
Re: Script shell et cd

Citation
oliveuh
Donc c'est imposible de changer de répertoire autrement qu'en utilisant la commande cd dans un shell. C'est bien cela ?

Cette commande n'agit que sur le répertoire courant du processus du shell (et de ses processus fils). On peut la mettre dans une fonction.


----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Monday 10 December 2007 13:46:15
Répondre     Citer    
Re: Script shell et cd
Envoyé par: AlSim

En bash, tu peux utiliser la commande source ou sa version courte . pour lancer ton script :

. ton_script.sh

[catwell.info]

Poste le Monday 10 December 2007 14:46:07
Répondre     Citer    
Re: Script shell et cd
Envoyé par: oudoubah

ou définir ton script comme une fonction dans le ~/.bash_profile.

Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"

Poste le Wednesday 12 December 2007 11:10:20
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Script shell et cd
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons