Sortir d'un script dans un repertoire défini
Fermé
hexomon
Messages postés
60
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
21 décembre 2022
-
24 août 2007 à 12:03
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 24 août 2007 à 16:05
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 24 août 2007 à 16:05
A voir également:
- Sortir d'un script dans un repertoire défini
- Script vidéo youtube - Guide
- Répertoire téléphonique gratuit - Télécharger - Bureautique
- Ghost script - Télécharger - Polices de caractères
- Microsoft activation script - Accueil - Windows
- Script bat - Guide
6 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 août 2007 à 12:11
24 août 2007 à 12:11
Salut,
{ cd /truc/bidule };-))
hexomon
Messages postés
60
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
21 décembre 2022
1
24 août 2007 à 13:04
24 août 2007 à 13:04
Merci beaucoup :) Mais j'ai testé et ça ne fonctionne pas: quand je sors du script je suis toujours dans le même repertoire.
A + :)
Hexomon
A + :)
Hexomon
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 août 2007 à 13:55
24 août 2007 à 13:55
Oups, je suis allé un peu vite, ça c'est pour exécuter des commandes dans l'environnement du shell père...
Donc voilà une solution, en fait il faut sourcer le script et en faire de même avec un fichier temporaire contenant le répertoire voulu :
;-))
Donc voilà une solution, en fait il faut sourcer le script et en faire de même avec un fichier temporaire contenant le répertoire voulu :
[tmpfs]$ cat foo.sh #! /bin/bash echo -e "Je suis dans le répertoire : \c" pwd { echo "J'entre dans le répertoire racine..." echo 'cd /' | tee fich.tmp source fich.tmp echo -e "Je suis dans le répertoire : \c" pwd } [tmpfs]$ pwd /home/jp/tmpfs [tmpfs]$ . ./foo.sh Je suis dans le répertoire : /home/jp/tmpfs J'entre dans le répertoire racine... cd / Je suis dans le répertoire : / [/]$ pwd / [/]$Attention toutefois, pas de commande "exit" dans le script sous peine de se voir déconnecter ;-((
;-))
hexomon
Messages postés
60
Date d'inscription
vendredi 2 juin 2006
Statut
Membre
Dernière intervention
21 décembre 2022
1
24 août 2007 à 14:30
24 août 2007 à 14:30
Je vais tester ça :)
Encore merci et bonne journée
Hexomon
Encore merci et bonne journée
Hexomon
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
au sens strict il n'y a pas de moyen qu'un script (qui est un programme distinct de ton shell) puisse changer le repertoire de ton shell.
Note que la commande cd n'est pas un programme,'est un mot clef du shell.
La seule solution c'est que ce soit ton shell lui même qui execute tout ou partie du script.
Il y a deux solutions pour cela:
utiliser la commande point, "." qui fait executer par ton shell une suite de commandes contrenues dans un fichier, et revient ensuite au clavier.
mais ce n'est pas satisfaisant car l'utilisateur va oublier le "."
l'autre solution (en bash) est de faire une commande shell
~$ gotmp() {
> cd /tmp/
> }
~$ gotmp
/tmp$
que tu mettra dans le .profile
Voila
Note que la commande cd n'est pas un programme,'est un mot clef du shell.
La seule solution c'est que ce soit ton shell lui même qui execute tout ou partie du script.
Il y a deux solutions pour cela:
utiliser la commande point, "." qui fait executer par ton shell une suite de commandes contrenues dans un fichier, et revient ensuite au clavier.
mais ce n'est pas satisfaisant car l'utilisateur va oublier le "."
l'autre solution (en bash) est de faire une commande shell
~$ gotmp() {
> cd /tmp/
> }
~$ gotmp
/tmp$
que tu mettra dans le .profile
Voila
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
24 août 2007 à 16:05
24 août 2007 à 16:05
Merci pour ces explications, mais quleques petits points à éclaircir ;-))
Note que la commande cd n'est pas un programme,c'est un mot clef du shell.
En fait de mot clé, c'est juste une commande interne du shell (builtin)
utiliser la commande point, "." qui fait executer par ton shell une suite de commandes contrenues dans un fichier
La commande s'appelle "source" et peut être appelée soit par son nom "source fichier" soit par sa forme abrégée "." (point).
l'autre solution (en bash) est de faire une commande shell
On appelle cela une fonction.
Et je pense que pour être efficace, peut être vaudrait-il mieux y adjoindre la possibilité de tenir compte d'un argument passé en paramètre, non ?
Note que la commande cd n'est pas un programme,c'est un mot clef du shell.
En fait de mot clé, c'est juste une commande interne du shell (builtin)
utiliser la commande point, "." qui fait executer par ton shell une suite de commandes contrenues dans un fichier
La commande s'appelle "source" et peut être appelée soit par son nom "source fichier" soit par sa forme abrégée "." (point).
l'autre solution (en bash) est de faire une commande shell
On appelle cela une fonction.
Et je pense que pour être efficace, peut être vaudrait-il mieux y adjoindre la possibilité de tenir compte d'un argument passé en paramètre, non ?
gotorep() { cd "$1" };-))