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?


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.


Isso funciona também para chamar o MSYS2 bash.
Tharen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.