Mulai bash shell (cygwin) dengan jalur yang benar tanpa mengubah direktori

13

Saya perlu menjalankan skrip shell cygwin tanpa mengubah direktori kerja, dari luar lingkungan cygwin.

Jika saya jalankan saja \path\to\bash.exe -c command, maka path tidak diatur dengan benar dan program cygwin tidak dapat ditemukan.

Jika saya menggunakan --loginopsi, bashsetel path dengan benar, tetapi juga berubah ke direktori home saya.

Opsi apa yang harus saya gunakan untuk meluncurkan bash untuk menjaga direktori kerja saat ini, dan juga menemukan executable cygwin?

Ben Voigt
sumber
Hai, pertanyaan serupa sedang dibahas di StackOverflow: stackoverflow.com/questions/9637601/…
Roman Hocke
@ Roman: Ini benar-benar di luar topik di SO.
Ben Voigt

Jawaban:

18

Ternyata default cygwin /etc/profilememeriksa variabel lingkungan bernama CHERE_INVOKINGdan menghambat perubahan direktori jika ditetapkan.

Begitu

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

memiliki perilaku yang diinginkan.

Ben Voigt
sumber
Ini berfungsi untuk menjalankan bash MSYS2 juga.
tharen