Starten Sie MSYS im aktuellen Ordner

9

Ich habe MinGW / MSYS unter Windows und kann nicht herausfinden, wie die MSYS-Shell in dem Ordner gestartet wird, in dem ich arbeite.

In der Windows-Konsole arbeite ich beispielsweise in einem Ordner. c:\tempWenn ich MSYS ( msys.bat) aufrufe, wird an einem festen Speicherort ein neues Konsolenfenster geöffnet, das meinen Basisordner darstellt.

Wie ändere msys.batich diese Datei, damit die MSYS-Shell im aktuellen Arbeitsordner geöffnet wird (oder nach dem Start geändert wird)?

Zetah
quelle
Können Sie den Inhalt dieser Batchdatei in Ihre Frage aufnehmen?
Karan
1
Wenn ich nichts verpasst habe, wird nirgendwo in dieser Batchdatei ein Pfad festgelegt. Ich vermute, dass rxvt / bash in ihren Standardverzeichnissen gemäß ihren Konfigurationsdateien gestartet werden. Sie könnten in der Lage Ihr aktuell dir (passieren %cd%) , um sie irgendwie, aber ich bin nicht sicher.
Karan
Ja, das ist es, wonach ich suche: Wenn Sie bash aufrufen, weisen Sie es an, im aktuellen Arbeitsordner unter Windows zu wechseln. Cygwin hat ähnliche Option
Zetah

Antworten:

6

Ich bin nicht sicher, welche Version von msysgit Sie verwenden, aber für mich msys.batändert das Aufrufen nicht das aktuelle Verzeichnis. Wenn Sie sehen, dass das Verzeichnis geändert wird, überprüfen Sie die etc/profileDatei im Verzeichnis msysgit auf cdBefehle. Wenn diese Datei ausgeführt wird, wenn eine Anmeldeshell gestartet wird, kann dies dazu führen, dass Sie immer in Ihrem Home-Verzeichnis landen.

sschuberth
quelle
3
Ja, die letzte Zeile in dieser Datei (... \ mingw \ msys \ 1.0 \ etc \ profile auf meinem System) ist cd "$HOME". Wenn Sie kommentieren, dass out bash im aktuellen Ordner gestartet wird, ist es einfach genug, etwas einzugeben cd, um zum Home-Ordner zu wechseln.
Brian Burns
4

Wie andere bereits betont haben, wird msys.bat ein cd "$HOME"from ausgeben etc/profile. Wenn .ich die Umgebungsvariable HOME auf setze, erhalte ich eine Mingw-Shell mit dem richtigen Arbeitsverzeichnis.

set HOME=.
C:\MinGW\msys\1.0\msys.bat
Marcel Greter
quelle
1

Sie können eine Bash-Datei erstellen und Argumente an msys2_shell.cmd übergeben, um an einer beliebigen Stelle zu beginnen.

msys2_shell.cmd -where "home/name/esp"

Brandan
quelle
0

Wenn Sie es in dem Ordner ausführen möchten, in dem Sie arbeiten, und Sie regelmäßig in diesem Ordner arbeiten, können Sie eine Zeile am Ende von .bash_profilein Ihrem Home-Verzeichnis hinzufügen .

cd /c/temp

Dieser Befehl wird jedes Mal ausgeführt, wenn Sie sich am Terminal anmelden. Sie können eine Datei ausarbeiten und als Quelle verwenden, wenn Sie mehrere Befehle ausführen möchten, z

. ~/etc/start_script . ~/etc/start_script2

Dies ist besonders nützlich, wenn Sie Ihre .bashrc bereits konfiguriert haben und keinen alternativen HOME-Pfad verwenden möchten.

Brian Thomas
quelle
0

Falls das Ändern von etc/profile(Kommentieren von cd "$HOME"wie in der ersten Antwort) aus irgendeinem Grund unerwünscht ist, könnte dies die Aufgabe erfüllen:

# in mingw:
%SystemDrive%\mingw\msys\1.0\bin\sh.exe --login -i -c "cd '%TEMP%'; $SHELL"
# msys in root:
%SystemDrive%\msys\bin\sh.exe --login -i -c "cd '%TEMP%'; $SHELL"

In diesem Beispiel wird die msys-Shell im /tmpVerzeichnis gestartet .

sebres
quelle