展开 bash 包含 '(' 的环境变量
Expand bash environment variable containing '('
在 windows 10 上使用 msys2 中的 bash,我似乎无法将变量设置为包含括号的 windows 环境变量,即 '(',在 bash 脚本。例如,
p86="$PROGRAMFILES(x86)"
不起作用,它扩展了环境变量 $PROGRAMFILES
。我试过用反斜杠转义,即。 "$PROGRAMFILES\(x86\)" 但这不起作用。在 bash 中有解决这个问题的方法吗?还是扩展变量中不允许使用括号?。所有 windows 变量都在进程环境中可用。
通常你会使用${..}
来取消引用一个变量,例如:
echo "${a}bc"
将打印变量 $a
然后是文字 bc
.
尝试:
p86="${PROGRAMFILES(x86)}"
或者您应该检查 env
的输出以查看变量是否存在:
env | grep PROGRAM
使用Windows命令处理器:
PFX86="$(cmd //c 'echo %ProgramFILES(x86)%')"
在 windows 10 上使用 msys2 中的 bash,我似乎无法将变量设置为包含括号的 windows 环境变量,即 '(',在 bash 脚本。例如,
p86="$PROGRAMFILES(x86)"
不起作用,它扩展了环境变量 $PROGRAMFILES
。我试过用反斜杠转义,即。 "$PROGRAMFILES\(x86\)" 但这不起作用。在 bash 中有解决这个问题的方法吗?还是扩展变量中不允许使用括号?。所有 windows 变量都在进程环境中可用。
通常你会使用${..}
来取消引用一个变量,例如:
echo "${a}bc"
将打印变量 $a
然后是文字 bc
.
尝试:
p86="${PROGRAMFILES(x86)}"
或者您应该检查 env
的输出以查看变量是否存在:
env | grep PROGRAM
使用Windows命令处理器:
PFX86="$(cmd //c 'echo %ProgramFILES(x86)%')"