2

子 MSYS2 bash プロセスで表示されるように、PowerShell で環境変数を設定するにはどうすればよいですか? これは、私が試したことを示す 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 シェル変数としては使用できないため、実際には機能しません。

上記のコマンドの予想される出力は次のようになります。

ABCD=foo
Value: foo

環境変数を MSYS2 に渡す正しい方法は何ですか? または、どうすればこの問題を解決できますか?

4

1 に答える 1

2

ここでの問題は、Powershell が Bash を呼び出す前に $ABCD を展開したことです。解決策は、バッククォートをエスケープ文字として使用して、次のようにコマンドを記述することです。

usr/bin/bash -l -c "env | grep ABCD; echo Value: `$ABCD"
于 2015-10-17T21:09:40.610 に答える