EDIT: Наведене нижче стосується більш ранніх версій MSYS2. Станом на 2020-01-21 рік більше не потрібен. Відповідь FeRD, здається, працює найкраще.
Я хотів використовувати рибу замість баш. На жаль, більшість методів тут не спрацювала, можливо, тому що синтаксис риб настільки різний.
Найкраще працювала ідея wzhd про те, що бігати exec fish
як перше, коли починається баш. Проблема все ще була: Якщо я хотів використовувати 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 рибою, як тільки колишній закінчує завантаження, але якщо мені потрібен командний рядок bash, я все одно просто запускаю його bash
.