Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/04/2007, à 10:58

compte supprimé

[résolu] cd ~/le/chemin dans un bash

Bjr

#!/bin/bash
cd ~/le/chemin
#[... qq instructions...]

J'aimerais bien rester dans ~/le/chemin une fois le script fini, c'est possible ? smile

Dernière modification par weenu (Le 06/04/2007, à 18:56)

#2 Le 04/04/2007, à 11:48

woodstock

Re : [résolu] cd ~/le/chemin dans un bash

Ben... moi j'y reste d'office en fin de script....

Hors ligne

#3 Le 04/04/2007, à 15:38

JoelS

Re : [résolu] cd ~/le/chemin dans un bash

weenu a écrit :
#!/bin/bash
cd ~/le/chemin
#[... qq instructions...]

J'aimerais bien rester dans ~/le/chemin une fois le script fini, c'est possible ? smile

Non si tu exécutes le script en question. Ton script bash est lancé comme un processus fils du processus courant, probablement un shell interactif. Le processus fils hérite (plus ou moins mais plutôt plus :-)) du contexte du processus père. Mais il n'y a pas de récupération par défaut par le processus père du contexte du processus fils, excepté le code d'erreur. Il faut mettre en place un mécanisme explicite, et c'est très lourd pour simplement rester dans un répertoire...

Oui si le shell bash appelant (le processus père) 'source' le script en question. Dans ce cas, les commandes écrites dans le script sont exécutées une à une par le père. La première étant 'cd ...', c'est le père qui change son répertoire de travail. ATTENTION: c'est en général une fausse bonne idée, puisque tu risques de 'casser' le processus père par inadvertance, le script appelé faisant tout dans le contexte direct du père pas dans une copie. On gardes ça en général simplement pour positionner des ensembles de variables par exemple, ou dans des cas bien précis et connus, comme dans le cas du lancement du premier shell interactif qui va 'sourcer' plusieurs fichiers bash.

@woodstock: ah bon, et que donnes le résultat de ça:

# cd $HOME
# pwd
/home/joel
# cat > ./test.sh <<EOF
#!/bin/bash
cd /tmp
pwd
EOF
# chmod 775 ./test.sh 
# ./test.sh 
/tmp
# pwd
/home/joel
#

Hors ligne

#4 Le 04/04/2007, à 16:17

woodstock

Re : [résolu] cd ~/le/chemin dans un bash

mouip.... c'est vrai que j'ai tendance à lancer mes scripts par la commande

. script.sh

plutôt que de les rendre executables... donc je ne crée pas de fils.

Merci pour l'explication... trés logique en fait.

Hors ligne

#5 Le 04/04/2007, à 16:24

compte supprimé

Re : [résolu] cd ~/le/chemin dans un bash

@Joels : bravo et merci pour les détails. Mais dit plus simplement ça donne quoi pour le paragraphe "Oui" ? smile

#6 Le 04/04/2007, à 21:27

JoelS

Re : [résolu] cd ~/le/chemin dans un bash

weenu a écrit :

@Joels : bravo et merci pour les détails. Mais dit plus simplement ça donne quoi pour le paragraphe "Oui" ? smile

Plus simple, je sais pas faire. Mais je connais des gars capables de tenir 2 jours la dessus :-) Bon essayes le test écrit pour woodstock, et puis tapes la commande suivante:

# . ./test.sh
# pwd

et tu verras bien :-)

Hors ligne