Jak zmienić katalog za pomocą skryptu


10

Mam ten skrypt

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

działa zgodnie z oczekiwaniami, ale chciałbym, aby ten skrypt przeniósł mnie do / home / user / somedir, ale pozostaję w tym samym katalogu.

Jak napisać skrypt, który przeniesie mnie (w gnome-terminal) do / home / user / somedir?


Odpowiedzi:


14

Musisz do sourceswojego skryptu. Jeśli nie, zostanie uruchomiony w osobnej podpowłoce, zmieniając katalog roboczy podpowłoki, ale nie powłoki, w której ją uruchomisz.

Aby go zdobyć:

. myfile.sh

lub

source myfile.sh

Możesz przeczytać więcej tutaj


Chciałem tylko to dodać ... UAdadapter, jeśli uruchamiasz skrypt shelll, taki jak sh myfile.sh lub ./myfile.sh, działałby tak, jak opisał Danjil. Każda z opcji Danjil powinna działać dla Ciebie.
itnet7

3

Użyj exec bashna końcu

Skrypt bash działa w bieżącym środowisku lub w środowisku potomnym, ale nigdy w środowisku macierzystym.

Jednak często zadawane jest to pytanie, ponieważ po wykonaniu skryptu bash z innego katalogu chce się pozostać w wierszu polecenia bash.

W takim przypadku po prostu uruchom podrzędną instancję bash na końcu skryptu:

#!/bin/bash
cd /home/user/somedir
exec bash
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.