繁体   English   中英

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

[英]Passing environment variables from powershell to MSYS2 bash

如何在 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 的正确方法是什么? 或者我该如何解决这个问题?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM