Starten Sie die Bash-Shell (Cygwin) mit dem richtigen Pfad, ohne das Verzeichnis zu ändern

13

Ich muss ein Cygwin-Shell-Skript ausführen, ohne das Arbeitsverzeichnis außerhalb der Cygwin-Umgebung zu ändern.

Wenn ich nur laufe \path\to\bash.exe -c command, ist der Pfad nicht richtig eingestellt und Cygwin-Programme können nicht gefunden werden.

Wenn ich die --loginOption verwende, wird bashder Pfad korrekt festgelegt, es wird jedoch auch in mein Ausgangsverzeichnis gewechselt.

Welche Optionen sollte ich verwenden, um bash zu starten, um das aktuelle Arbeitsverzeichnis beizubehalten und um auch ausführbare Dateien von cygwin zu finden?

Ben Voigt
quelle
Hallo, eine ähnliche Frage wurde bei StackOverflow
Roman Hocke
@Roman: Dies wäre auf SO völlig unangebracht.
Ben Voigt

Antworten:

18

Es stellt sich heraus, dass die Standardeinstellung von cygwin /etc/profilenach einer benannten Umgebungsvariablen sucht CHERE_INVOKINGund die Änderung des Verzeichnisses verhindert, falls festgelegt.

So

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

hat das gewünschte Verhalten.

Ben Voigt
quelle
Dies funktioniert auch beim Aufrufen von MSYS2-bash.
tharen