如何在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的正确方法是什么?或者我该如何解决这个问题呢?
答案 0 :(得分:1)
这里的问题是Powershell在调用Bash之前扩展了$ ABCD。解决方案是使用反引号作为转义字符来编写这样的命令:
usr/bin/bash -l -c "env | grep ABCD; echo Value: `$ABCD"