Démarrer le shell bash (cygwin) avec le chemin correct sans changer de répertoire


13

J'ai besoin d'exécuter un script shell cygwin sans changer le répertoire de travail, depuis l'extérieur de l'environnement cygwin.

Si je lance juste \path\to\bash.exe -c command, alors le chemin n'est pas défini correctement et les programmes cygwin sont introuvables.

Si j'utilise l' --loginoption, bashdéfinit le chemin correctement, mais modifie également mon répertoire personnel.

Quelles options dois-je utiliser pour lancer bash afin de conserver le répertoire de travail actuel et également trouver les exécutables cygwin?


Salut, une question similaire a été discutée à StackOverflow: stackoverflow.com/questions/9637601/…
Roman Hocke

@Roman: Ce serait totalement hors sujet sur SO.
Ben Voigt

Réponses:


18

Il s'avère que la valeur par défaut de cygwin /etc/profilerecherche une variable d'environnement nommée CHERE_INVOKINGet empêche le changement de répertoire s'il est défini.

Donc

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

a le comportement souhaité.


Cela fonctionne également pour invoquer bash MSYS2.
tharen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.