РЕДАКТИРОВАТЬ: ниже относится к более ранним версиям MSYS2. По состоянию на 2020-01-21 это больше не требуется. Ответ FeRD, кажется, работает лучше всего.
Я хотел использовать рыбу вместо Баш. К сожалению, большинство методов здесь не сработало, возможно, потому что синтаксис рыбы очень отличается.
Лучше всего была идея WZD о запуске exec fish
в первую очередь, когда начинается bash. Однако все еще оставалась проблема: если я хотел использовать bash, мне нужно было отредактировать, .bashrc
чтобы удалить эту строку, потому что даже если я запустил ее с рыбы, он просто запустил бы другой экземпляр рыбы.
Лучше всего убедиться, что он exec fish
запускается при запуске msys2, но не при каждом запуске bash.
Я нашел путь через файл msys2_shell.cmd
в папке установки msys2. Я нашел эти строки:
set SHELL_ARGS=
:collectparams
if not "x%~1" == "x" set SHELL_ARGS=%SHELL_ARGS% %1& shift& goto :collectparams
Кажется, они определяют параметры для передачи в bash, как только он начинается, но только тогда, когда этот скрипт выполняется (в отличие от .bashrc
). Поэтому я добавил эту строку сразу после:
set SHELL_ARGS=%SHELL_ARGS% -c "exec fish"
Кажется, все хорошо. Запуск msys2 заменяет bash на fish, как только первая заканчивает загрузку, но если мне нужна командная строка bash, я все равно могу просто начать ее bash
.