Comment changer de répertoire en utilisant un script

10

J'ai ce script

#!/bin/bash
cd /home/user/somedir
pwd

il fonctionne comme prévu, mais j'aimerais que ce script me transporte vers / home / user / somedir, mais je reste dans le même répertoire.

Comment écrire un script qui me transportera (dans gnome-terminal) vers / home / user / somedir?

UAdapter
la source

Réponses:

14

Vous avez besoin de sourcevotre script. Sinon, il sera exécuté dans un sous-shell séparé, modifiant le répertoire de travail du sous-shell mais pas du shell dans lequel vous l'exécutez.

Pour l'approvisionner:

. myfile.sh

ou

source myfile.sh

Vous pouvez en lire plus ici

danjjl
la source
J'allais juste ajouter que .... UAdadapter si vous exécutiez le script shelll comme sh myfile.sh ou ./myfile.sh, il fonctionnerait comme danjil l'a décrit. L'une ou l'autre des options de danjil devrait fonctionner pour vous.
itnet7
3

Utilisation exec bashà la fin

Un script bash opère sur son environnement actuel ou sur celui de ses enfants, mais jamais sur son environnement parent.

Cependant, cette question est souvent posée car on veut être laissé à une invite bash dans un certain répertoire après l'exécution d'un script bash à partir d'un autre répertoire.

Si c'est le cas, exécutez simplement une instance bash enfant à la fin du script:

#!/bin/bash
cd /home/user/somedir
exec bash
Serge Stroobandt
la source