EDYCJA: Poniższe dotyczy starszych wersji MSYS2. Od 21.01.2020 nie jest już wymagane. Odpowiedź FeRD wydaje się działać najlepiej.
Chciałem użyć ryby zamiast bash. Niestety większość metod tutaj nie działała, być może dlatego, że składnia ryb jest tak inna.
To, co działało najlepiej, to pomysł wzhd o uruchomieniu exec fish
jako pierwszej rzeczy, gdy zaczyna się bash. Wciąż jednak był problem: gdybym chciał użyć bash, musiałem edytować, .bashrc
aby usunąć ten wiersz, ponieważ nawet jeśli uruchomię go z ryb, po prostu uruchomiłbym kolejną instancję ryby.
Najlepiej jest upewnić się, że exec fish
działa, gdy zaczyna się msys2, ale nie za każdym razem, gdy zaczyna się bash.
Znalazłem sposób poprzez plik msys2_shell.cmd
w folderze instalacyjnym msys2. Znalazłem następujące linie:
set SHELL_ARGS=
:collectparams
if not "x%~1" == "x" set SHELL_ARGS=%SHELL_ARGS% %1& shift& goto :collectparams
Wygląda na to, że definiują parametry, które mają zostać przekazane do bashu, gdy tylko się rozpocznie, ale tylko wtedy, gdy ten skrypt zostanie uruchomiony (w przeciwieństwie do .bashrc
). Więc dodałem ten wiersz zaraz po:
set SHELL_ARGS=%SHELL_ARGS% -c "exec fish"
Jak dotąd wszystko wydaje się w porządku. Uruchamianie msys2 zastępuje bash rybą, gdy tylko poprzednie zakończy ładowanie, ale jeśli potrzebuję linii poleceń bash, nadal mogę po prostu zacząć bash
.