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


13

Мені потрібно запустити скрипт оболонки cygwin, не змінюючи робочий каталог, ззовні поза середовищем cygwin.

Якщо я запускаю просто \path\to\bash.exe -c command, шлях встановлений неправильно, і програми cygwin не можна знайти.

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

Які параметри я повинен використовувати для запуску bash для збереження поточного робочого каталогу, а також для пошуку виконуваних файлів cygwin?


Привіт, аналогічне питання обговорювалося на StackOverflow: stackoverflow.com/questions/9637601 / ...
Roman Хоке

@ Роман: Це було б абсолютно поза темою щодо SO.
Ben Voigt

Відповіді:


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.