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?

Ben Voigt
la source
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é.

Ben Voigt
la source
Cela fonctionne également pour invoquer bash MSYS2.
tharen