如何通过设置环境变量的 Windows 终端启动 Git Bash?

Posted

技术标签:

【中文标题】如何通过设置环境变量的 Windows 终端启动 Git Bash?【英文标题】:How can I start Git Bash via Windows Terminal with environment variables set? 【发布时间】:2020-07-15 19:23:09 【问题描述】:

我正在我的机器上运行 Windows 终端和 Git Bash。我想将 Git Bash 集成到 Windows 终端中,但我想在通过 Windows 终端运行 Git Bash 时设置环境变量MSYS_NO_PATHCONV=1

我不想将它添加到我的系统环境变量中,因为我希望能够在没有这个环境变量的情况下在 Windows 终端之外启动 Git Bash。

为了将 Git Bash 添加到 Windows 终端,我在 Windows 终端的 profiles.json 文件中创建了以下条目:

        
            "guid": "3a20b825-3d22-41ed-b575-9006741aff64",
            "name": "Git Bash",
            "commandline": "C:\\Program Files\\Git\\usr\\bin\\bash.exe",
            "icon": "C:/Program Files/Git/mingw64/share/git/git-for-windows.ico",
            "startingDirectory": "~",
            "hidden": false
        

这是我迄今为止尝试将环境变量导入 Git Bash 的方法:

将此环境变量添加为命令中的前缀:MSYS_NO_PATHCONV=1 "commandline": "C:\\Program Files\\Git\\usr\\bin\\bash.exe",。这只会导致一条错误消息,并且不会启动 Git Bash。 创建一个批处理文件,首先在 Windows 上使用 set 命令设置环境变量,然后运行 ​​Git Bash。这不会打开 Git Bash,而只是打开一个常规的 cmd 终端,在该终端中执行批处理文件中的命令。 查看了documentation for the profiles.json file,但没有提到为终端可执行文件设置环境变量。

有什么方法可以在 Windows 终端中使用我的自定义环境变量启动我的 Git Bash,而无需将其添加到系统的环境变量中?

【问题讨论】:

【参考方案1】:
"commandline": "cmd.exe /C \"set MSYS_NO_PATHCONV=1 && \"C:\\Program Files\\Git\\bin\\bash.exe\"\"",

或将export MSYS_NO_PATHCONV=1 附加到~/.bashrc

【讨论】:

我必须使用C:\\Program Files\\Git\\bin\\bash.exe(而不是\\usr\\bin\\bash.exe)才能让bash 找到Unix 命令。否则它找不到像catbash 这样的命令。 是的,我在PATH 中有那个文件夹,但我没有注意到。【参考方案2】:

如果您想在其他终端上保留该行为,您可能需要直接在 MSYS2 安装中编辑 msys2.ini

【讨论】:

以上是关于如何通过设置环境变量的 Windows 终端启动 Git Bash?的主要内容,如果未能解决你的问题,请参考以下文章

设置Windows系统的cmd命令行终端的代理

如何在启动 git bash 终端之前运行 linux 命令

windows 修改环境变量后在 vscode 的终端不生效的解决方法

安装JDK, 要在命令行下设置路径环境变量。啥是命令行,如何启动命令行?

如何永久设置Windows环境变量?

如何查看ubuntu shell环境变量