Uruchom MSYS w bieżącym folderze

9

Mam MinGW / MSYS w systemie Windows i nie mogę zrozumieć, jak uruchomić powłokę MSYS w folderze, w którym pracuję.

Na przykład w konsoli Windows pracuję w folderze c:\tempi jeśli wywołam MSYS ( msys.bat), otworzy się nowe okno konsoli w pewnej stałej lokalizacji, reprezentującej mój folder domowy.

Jak zmienić ten msys.batplik, aby powłoka MSYS otwierała się w bieżącym folderze roboczym (lub zmienia go po uruchomieniu)?

zetah
źródło
Czy możesz dołączyć zawartość tego pliku wsadowego do swojego pytania?
Karan,
1
Chyba że coś przeoczyłem, nie widzę nigdzie ścieżki w tym pliku wsadowym. Domyślam się, że rxvt / bash uruchamiają się w domyślnych katalogach zgodnie z plikami konfiguracyjnymi. Być może możesz %cd%jakoś przekazać im swój bieżący katalog ( ), ale nie jestem pewien.
Karan
Tak, właśnie tego szukam: podczas wywoływania bash poinstruuj go, aby zmienił się w bieżącym folderze roboczym w systemie Windows. Cygwin ma podobną opcję
zetah

Odpowiedzi:

6

Nie jestem pewien, jakiej wersji msysgit używasz, ale dla mnie wywołanie msys.batnie zmienia bieżącego katalogu. Jeśli zauważysz, że katalog jest zmieniany, sprawdź etc/profileplik w katalogu msysgit pod kątem cdpoleceń. Ponieważ plik ten jest wykonywany po uruchomieniu powłoki logowania, może to być przyczyną, dla której zawsze lądujesz w katalogu domowym.

sschuberth
źródło
3
Tak, ostatni wiersz w tym pliku (... \ mingw \ msys \ 1.0 \ etc \ profile w moim systemie) to cd "$HOME". Jeśli skomentujesz, że bash rozpocznie się w bieżącym folderze, wystarczy napisać, cdaby przejść do folderu domowego.
Brian Burns
4

Jak zauważyli inni, msys.bat wyda polecenie cd "$HOME"z etc/profile. Ustawienie zmiennej środowiskowej HOME w celu .uzyskania powłoki mingw z poprawnym katalogiem roboczym.

set HOME=.
C:\MinGW\msys\1.0\msys.bat
Marcel Greter
źródło
1

Możesz utworzyć plik bash i przekazać argumenty do msys2_shell.cmd, aby rozpocząć gdziekolwiek chcesz.

msys2_shell.cmd -where "home/name/esp"

Brandan
źródło
0

Jeśli chcesz uruchomić go w folderze, w którym pracujesz i pracujesz w tym folderze regularnie, możesz dodać linię na końcu .bash_profilew swoim katalogu domowym.

cd /c/temp

To polecenie będzie uruchamiane przy każdym logowaniu do terminala. Możesz uzyskać opracowanie i źródło pliku, jeśli masz wiele poleceń, które chcesz uruchomić, np

. ~/etc/start_script . ~/etc/start_script2

Jest to szczególnie przydatne, jeśli masz już skonfigurowany plik .bashrc i naprawdę nie chcesz używać alternatywnej ścieżki HOME.

Brian Thomas
źródło
0

W przypadku, gdy z jakiegoś powodu modyfikacja etc/profile(komentowanie w cd "$HOME"podobny sposób w pierwszej odpowiedzi) jest niepożądana, może to zrobić:

# in mingw:
%SystemDrive%\mingw\msys\1.0\bin\sh.exe --login -i -c "cd '%TEMP%'; $SHELL"
# msys in root:
%SystemDrive%\msys\bin\sh.exe --login -i -c "cd '%TEMP%'; $SHELL"

Ten przykład uruchomiłby powłokę msys w /tmpkatalogu.

sebres
źródło