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

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

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

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

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

1 ответ

Решение

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

Так

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

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

Другие вопросы по тегам