Inicie o shell bash (cygwin) com o caminho correto sem alterar o diretório

13

Eu preciso executar um script de shell cygwin sem alterar o diretório de trabalho, de fora do ambiente cygwin.

Se eu executar apenas \path\to\bash.exe -c command, o caminho não está definido corretamente e os programas cygwin não podem ser encontrados.

Se eu usar a --loginopção, bashdefine o caminho corretamente, mas também muda para o meu diretório pessoal.

Quais opções devo usar para iniciar o bash para manter o diretório de trabalho atual e também encontrar os executáveis ​​do cygwin?

Ben Voigt
fonte
Oi, pergunta semelhante estava sendo discutida em StackOverflow: stackoverflow.com/questions/9637601/...
Roman Hocke
@ Roman: Isso seria totalmente fora de tópico no SO.
Ben Voigt

Respostas:

18

Acontece que o padrão cygwin /etc/profileverifica uma variável de ambiente chamada CHERE_INVOKINGe inibe a mudança de diretório, se configurada.

então

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

tem o comportamento desejado.

Ben Voigt
fonte
Isso funciona também para chamar o MSYS2 bash.
Tharen