Uruchom bash shell (cygwin) z poprawną ścieżką bez zmiany katalogu


12

Muszę uruchomić skrypt powłoki cygwin bez zmiany katalogu roboczego spoza środowiska cygwin.

Jeśli ucieknę \path\to\bash.exe -c command, wtedy ścieżka nie jest ustawiona poprawnie i nie można znaleźć programów cygwin.

Jeśli korzystam z --login opcja, bash ustawia ścieżkę poprawnie, ale także zmienia mój katalog domowy.

Jakich opcji należy użyć, aby uruchomić bash, aby zachować bieżący katalog roboczy, a także znaleźć pliki wykonywalne cygwin?


Hi podobne pytanie było omawiane na StackOverflow: stackoverflow.com/questions/9637601/…
Roman Hocke

@Roman: To byłoby całkowicie nie na temat SO.
Ben Voigt

Odpowiedzi:


18

Okazuje się, że domyślne cygwin /etc/profile sprawdza zmienną środowiskową o nazwie CHERE_INVOKING i blokuje zmianę katalogu, jeśli jest ustawiony.

Więc

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

ma pożądane zachowanie.


Działa to również w celu wywołania bashu MSYS2.
tharen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.