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?


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.


Dies funktioniert auch beim Aufrufen von MSYS2-bash.
tharen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.