在 Git Bash 中设置 Windows 环境变量

在 Git Bash 中设置 Windows 环境变量

例如,是否可以在 Git Bash 中设置实际的 Windows 环境变量?我知道你通常可以通过 Git Bash 设置环境变量,例如

FOOBAR=foo; export FOOBAR;

但这些环境变量仅在 Git Bash 环境中可用,在 Windows 中通常不可用。因此,如果您随后打开常规 Windows 命令提示符并执行

echo %FOOBAR%

它不会输出foo

提出这个问题的原因是:我在 Windows 中使用 bash 脚本启动 SSH 代理~/.bashrc。这样我就可以在 Git Bash 中使用我的 SSH 密钥连接到我可以访问的任何 SSH 服务器。但是,任何未在 Git Bash 中运行的应用程序都无法访问已经运行的 SSH 代理,因为SSH_AUTH_SOCK环境变量在 Git Bash 之外不可用。

我知道在这种情况下的解决方案可能是在 Windows 中运行 SSH 代理”天生地“(然后我希望/假设 SSH 代理也可以在 Git Bash 上使用),但我仍然很好奇您是否可以在 Git Bash 内部设置环境变量——这也可以在系统的其余部分使用。

//编辑:我还在 Git Bash 上尝试了以下操作:

cmd //c set FOOBAR=foo

(看这里为什么需要使用双斜杠),但之后我打开 CMD 时仍然没有运气:

echo %FOOBAR%
%FOOBAR%

答案1

一个解决方案是使用

setx FOOBAR foo

然而,这将设定一个永恒的用户环境变量。在我的情况下,这没问题。每次启动 Git Bash(也会启动 SSH 代理)时,脚本现在还会SSH_AUTH_SOCK通过以下方式将环境变量设置为用户环境变量:

setx SSH_AUTH_SOCK ${SSH_AUTH_SOCK}

相关内容