Запустите MSYS в текущей папке

9

У меня MinGW / MSYS в Windows, и я не могу понять, как запустить оболочку MSYS в папке, в которой я работаю.

Например, в консоли Windows я работаю в папке, c:\tempи если я вызываю MSYS ( msys.bat), она открывает новое окно консоли в каком-то фиксированном месте, представляющем мою домашнюю папку.

Как изменить этот msys.batфайл, чтобы оболочка MSYS открывалась в текущей рабочей папке (или изменялась в ней после запуска)?

zetah
источник
Можете ли вы включить содержимое этого пакетного файла в свой вопрос?
Каран
1
Если я не пропустил что-то, я не вижу пути в этом пакетном файле. Я предполагаю, что rxvt / bash запускаются в своих каталогах по умолчанию согласно их файлам конфигурации. Вы могли бы быть в состоянии передать свою текущую директорию ( %cd%) к ним как - то, но я не уверен.
Каран
Да, это то, что я ищу: при вызове bash указывайте, что нужно изменить текущую рабочую папку под Windows. У Cygwin есть похожая опция
Зета

Ответы:

6

Я не уверен, какую версию msysgit вы используете, но для меня вызов msys.batне меняет текущий каталог. Если вы видите, что каталог изменяется, проверьте команды etc/profileв каталоге msysgit cd. Поскольку этот файл запускается при запуске оболочки входа в систему, это может быть причиной того, что вы всегда попадете в свой домашний каталог.

sschuberth
источник
3
Да, последняя строка в этом файле (... \ mingw \ msys \ 1.0 \ etc \ profile в моей системе) - это cd "$HOME". Если вы прокомментируете, что bash будет запущен в текущей папке, то достаточно набрать текст, cdчтобы перейти в домашнюю папку.
Брайан Бернс
4

Как уже отмечали другие, msys.bat будет выдавать cd "$HOME"from etc/profile. Установка переменной среды HOME .дает мне оболочку mingw с правильным рабочим каталогом.

set HOME=.
C:\MinGW\msys\1.0\msys.bat
Марсель Гретер
источник
1

Вы можете создать файл bash и передать аргументы в msys2_shell.cmd, чтобы запустить его там, где вы хотите.

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

Brandan
источник
0

Если вы хотите запустить его в папке, в которой вы работаете, и вы регулярно работаете в этой папке, вы можете добавить строку в конец .bash_profileвашего домашнего каталога.

cd /c/temp

Эта команда будет выполняться каждый раз, когда вы входите в терминал. Вы можете разработать и получить исходный файл, если у вас есть несколько команд, которые вы хотите запустить, например

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

Это особенно полезно, если вы уже настроили ваш .bashrc и не хотите использовать альтернативный путь HOME.

Брайан Томас
источник
0

В случае, если изменение etc/profile(комментирование cd "$HOME"как в первом ответе) по какой-то причине нежелательно, это может сделать работу:

# 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"

В этом примере запускается оболочка msys в /tmpкаталоге.

sebres
источник