Запустите оболочку bash (cygwin) с правильным путем без изменения каталога


13

Мне нужно запустить скрипт оболочки cygwin без изменения рабочего каталога, вне среды cygwin.

Если я просто запускаю \path\to\bash.exe -c command, то путь не установлен правильно, и программы Cygwin не могут быть найдены.

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

Какие опции я должен использовать, чтобы запустить bash, чтобы сохранить текущий рабочий каталог, а также найти исполняемые файлы cygwin?


Привет, аналогичный вопрос обсуждался в StackOverflow: stackoverflow.com/questions/9637601/…
Роман Хок

@Roman: Это было бы совершенно не по теме на SO.
Бен Фойгт

Ответы:


18

Оказывается, что Cygwin по умолчанию /etc/profileпроверяет переменную среды с именем CHERE_INVOKINGи запрещает изменение каталога, если установлено.

Так

set CHERE_INVOKING=1
\path\to\bash.exe -l -c command

имеет желаемое поведение.


Это работает и для вызова MSYS2 bash.
Тарен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.