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?


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.


Esto funciona para invocar MSYS2 bash también.
tharen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.