Avviare bash shell (cygwin) con il percorso corretto senza cambiare directory


13

Ho bisogno di eseguire uno script della shell Cygwin senza cambiare la directory di lavoro, al di fuori dell'ambiente Cygwin.

Se eseguo solo \path\to\bash.exe -c command, il percorso non è impostato correttamente e non è possibile trovare i programmi Cygwin.

Se utilizzo l' --loginopzione, bashimposta correttamente il percorso, ma cambia anche nella mia home directory.

Quali opzioni dovrei usare per avviare bash per mantenere l'attuale directory di lavoro e trovare anche eseguibili cygwin?


Ciao, una domanda simile è stata discussa su StackOverflow: stackoverflow.com/questions/9637601/…
Roman Hocke,

@Roman: Questo sarebbe totalmente fuori tema su SO.
Ben Voigt,

Risposte:


18

Si scopre che il valore predefinito di cygwin /etc/profileverifica la presenza di una variabile di ambiente denominata CHERE_INVOKINGe inibisce il cambio di directory se impostato.

Così

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

ha il comportamento desiderato.


Questo funziona anche per invocare MSYS2 bash.
tharen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.