EDIT: नीचे MSYS2 के पुराने संस्करणों पर लागू होता है। 2020-01-21 तक, अब इसकी आवश्यकता नहीं है। FeRD का जवाब सबसे अच्छा काम करता है।
मैं बैश के बजाय मछली का उपयोग करना चाहता था। दुर्भाग्य से यहाँ अधिकांश विधियाँ काम नहीं आईं, संभवतः क्योंकि मछली का सिंटैक्स बहुत भिन्न होता है।
exec fishबैश शुरू होने पर सबसे अच्छी बात यह थी कि चलने के बारे में wzhd का विचार क्या था । अभी भी एक समस्या थी, हालाँकि: यदि मैं बैश का उपयोग करना चाहता था, तो मुझे .bashrcउस लाइन को हटाने के लिए संपादित करना था क्योंकि अगर मैं इसे मछली से चलाता तो यह सिर्फ एक और मछली की शुरुआत होती।
सबसे अच्छी बात यह सुनिश्चित करना है कि exec fishजब msys2 शुरू होता है तो चलता है, लेकिन हर बार बैश शुरू नहीं होता है।
जिस तरह से मैंने पाया है कि msys2_shell.cmdmsys2 की स्थापना फ़ोल्डर में फ़ाइल के माध्यम से है । मुझे ये लाइनें मिलीं:
set SHELL_ARGS=
:collectparams
if not "x%~1" == "x" set SHELL_ARGS=%SHELL_ARGS% %1& shift& goto :collectparams
ऐसा लगता है कि जैसे ही यह शुरू होता है, वैसे ही इसे काटने के लिए पास करने के लिए मापदंडों को परिभाषित किया जाता है, लेकिन केवल जब यह स्क्रिप्ट चलती है (इसके विपरीत .bashrc)। इसलिए मैंने इस लाइन को उसके बाद जोड़ा:
set SHELL_ARGS=%SHELL_ARGS% -c "exec fish"
अब तक सब कुछ ठीक लग रहा है। Msys2 को शुरू करने से पूर्व की लोडिंग समाप्त होते ही मछली के साथ बैश की जगह आ जाती है, लेकिन अगर मुझे एक bash कमांड लाइन की आवश्यकता है तो मैं अभी भी इसे शुरू कर सकता हूं bash।