Inicie bash shell (cygwin) con la ruta correcta sin cambiar el directorio

13

Necesito ejecutar un script de shell cygwin sin cambiar el directorio de trabajo, desde fuera del entorno cygwin.

Si ejecuto solo \path\to\bash.exe -c command, entonces la ruta no está configurada correctamente y no se pueden encontrar los programas de Cygwin.

Si uso la --loginopción, bashestablece la ruta correctamente, pero también cambia a mi directorio de inicio.

¿Qué opciones debo usar para iniciar bash para mantener el directorio de trabajo actual y también encontrar ejecutables de cygwin?

Ben Voigt
fuente
Hola, se discutió una pregunta similar en StackOverflow: stackoverflow.com/questions/9637601/…
Roman Hocke
@Roman: Esto sería totalmente fuera de tema en SO.
Ben Voigt

Respuestas:

18

Resulta que el valor predeterminado de cygwin /etc/profilebusca una variable de entorno llamada CHERE_INVOKINGe inhibe el cambio de directorio si está configurado.

Entonces

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

Tiene el comportamiento deseado.

Ben Voigt
fuente
Esto funciona para invocar MSYS2 bash también.
tharen