展开包含'('

时间:2016-06-08 06:17:41

标签: windows bash environment-variables msys2

在Windows 10上使用来自msys2的bash,我似乎无法将变量设置为包含parens的Windows环境变量,即&#39;(&#39;,在bash脚本中。例如,< / p>

p86="$PROGRAMFILES(x86)"

不起作用,它会扩展env变量$PROGRAMFILES。我试过用反斜杠逃避,即。 &#34; $ PROGRAMFILES \(86 \)&#34;但那不起作用。在bash中有这种方法吗?或只是不允许扩展变量的parens?所有窗口变量都可在过程环境中使用。

2 个答案:

答案 0 :(得分:1)

通常您会使用encoding/xml取消引用变量,例如:

${..}

将打印变量echo "${a}bc" ,然后打印文字$a

尝试:

bc

另外,您应该检查p86="${PROGRAMFILES(x86)}" 的输出以查看变量是否存在:

env

答案 1 :(得分:1)

使用Windows命令处理器:

PFX86="$(cmd //c 'echo %ProgramFILES(x86)%')"