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

7492
Ben Voigt

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

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

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

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

12
Привет, аналогичный вопрос обсуждался в StackOverflow: http://stackoverflow.com/questions/9637601/open-cygwin-at-a-specific-folder Roman Hocke 10 лет назад 0
@Roman: Это было бы совершенно не по теме на SO. Ben Voigt 10 лет назад 0

1 ответ на вопрос

18
Ben Voigt

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

Так

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

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

Это работает и для вызова MSYS2 bash. tharen 9 лет назад 0