我试着更新我的MSYS2/MINGW64(Windows 10)安装。最近,我注意到我的一个CMake项目无法编译,这似乎是因为它开始包含一些不相关的目录。
所以,我看了看
env
报告——我注意到这两个条目,对我来说很奇怪——以感叹号开头;这是的输出
env
在MINGW64中
bash
外壳(和MSYS2
env
具有完全相同的前四行输出):
$ env
ProgramFiles(x86)=C:\Program Files (x86)
!::=::\
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
!C:=C:\Users\user\Desktop
...
我想我从未见过名为
!::
(感叹号-冒号-冒号)或
!C:
(感叹号-C-冒号)。还要注意
!C:
变量似乎指向首先打开MINGW64或MSYS2 shell的目录(因为如果
cd
到另一个工作目录
!C:
变量保持不变)。
所以,我的问题是——这些以感叹号开头的变量的含义是什么;是什么把它们插在那里的?(我不记得以前见过它们,所以我怀疑是与Windows相关的东西,要么是Windows更新,要么是MSYS2更新——因为我怀疑Linux/
猛击
事物的一方需要调用任何变量
!C:
)
编辑:发现有一种叫做“间接扩张”的东西
https://unix.stackexchange.com/questions/41292/variable-substitution-with-an-exclamation-mark-in-bash
-然而,对于参数(即赋值右侧的env-vars),
不
变量名??!!