BEARBEITEN: Das Folgende gilt für frühere Versionen von MSYS2. Ab dem 21.01.2020 ist es nicht mehr erforderlich. Die Antwort von FeRD scheint am besten zu funktionieren.
Ich wollte Fisch anstelle von Bash verwenden. Leider haben die meisten Methoden hier nicht funktioniert, möglicherweise weil die Fischsyntax so unterschiedlich ist.
Was am besten funktionierte, war die Idee von wzhd, exec fish
als erstes zu laufen , wenn die Bash beginnt. Es gab jedoch immer noch ein Problem: Wenn ich bash verwenden wollte, musste ich bearbeiten .bashrc
, um diese Zeile zu entfernen, da selbst wenn ich sie von fish aus laufen lasse, nur eine andere Fischinstanz gestartet wird.
Am besten stellen Sie sicher, dass es ausgeführt wird, exec fish
wenn msys2 beginnt, aber nicht jedes Mal , wenn bash beginnt.
Ich habe die Datei msys2_shell.cmd
im Installationsordner von msys2 gefunden. Ich habe diese Zeilen gefunden:
set SHELL_ARGS=
:collectparams
if not "x%~1" == "x" set SHELL_ARGS=%SHELL_ARGS% %1& shift& goto :collectparams
Es scheint, dass sie Parameter definieren, die an bash übergeben werden sollen, sobald es beginnt, aber nur, wenn dieses Skript ausgeführt wird (im Gegensatz zu .bashrc
). Also habe ich diese Zeile gleich danach hinzugefügt:
set SHELL_ARGS=%SHELL_ARGS% -c "exec fish"
Bisher scheint alles in Ordnung zu sein. Das Starten von msys2 ersetzt bash durch fish, sobald der Ladevorgang abgeschlossen ist. Wenn ich jedoch eine bash-Befehlszeile benötige, kann ich sie trotzdem einfach starten bash
.