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?


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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.