0

在 Windows 10 上使用来自 msys2 的 bash,我似乎无法在 bash 脚本中将变量设置为包含括号的 Windows 环境变量,即 '('。例如,

p86="$PROGRAMFILES(x86)"

不起作用,它扩展了 env 变量$PROGRAMFILES。我试过用反斜杠转义,即。"$PROGRAMFILES\(x86\)" 但这不起作用。bash中有没有办法解决这个问题?还是扩展变量中不允许使用括号?所有 windows 变量在进程环境中都可用。

4

2 回答 2

1

通常你会${..}用来取消引用一个变量,例如:

echo "${a}bc"

将打印变量$a,然后是文字bc

尝试:

p86="${PROGRAMFILES(x86)}"

或者,您应该检查输出env以查看变量是否存在:

env | grep PROGRAM
于 2016-06-08T06:27:17.477 回答
1

使用 Windows 命令处理器:

PFX86="$(cmd //c 'echo %ProgramFILES(x86)%')"
于 2016-06-21T06:23:56.720 回答