将环境变量从powershell传递到MSYS2 bash

时间:2015-10-17 20:49:48

标签: windows bash powershell msys2

如何在PowerShell中设置环境变量,使其在子MSYS2 bash进程中可见?这是一个PowerShell会话,展示了我的尝试:

PS D:\msys64> $env:ABCD = "foo"
PS D:\msys64> usr\bin\bash -l -c "env | grep ABCD; echo Value: $ABCD"
ABCD=foo
Value:

正如您所看到的,环境变量在env的输出中可见,但它不能作为bash shell变量使用,这意味着它不会真正起作用。

上述命令的预期输出为:

ABCD=foo
Value: foo

将环境变量传递给MSYS2的正确方法是什么?或者我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

这里的问题是Powershell在调用Bash之前扩展了$ ABCD。解决方案是使用反引号作为转义字符来编写这样的命令:

usr/bin/bash -l -c "env | grep ABCD; echo Value: `$ABCD"
相关问题