环境变量是什么意思 !::=::\
What is the meaning of environment variable !::=::\
我发现我的环境变量有一条奇怪的线:
$ env
...
!::=::\
...
当我启动 shell 或 运行 bash 脚本时,它有时存在,有时不存在。当它不存在时,我对 subshells $(...) 的 bash 调用需要 3 个转义反斜杠,而不是每个 1.
知道它是什么以及如何设置它吗?
这是 Cygwin 对 Windows 命令处理器 (cmd.exe) 创建的 special environment variables 之一的表示,以便以相同的方式跟踪每个驱动器的单独当前目录 MS- DOS 做到了。您还应该在 env 的输出中看到 !C:=C:\Users\Ross Ridge
之类的条目。 Windows 命令处理器以 =X:=X:\Path
的形式创建它们,但 Cygwin 将初始 =
更改为 !
以使其成为合法的 Unix 环境条目。
所以你在 Cygwin 环境中看到 !::=::\
的原因是因为 =::=::\
在 Cygwin 继承的 Windows 环境中。我不确定为什么 Windows 环境中有一个 =::=::\
条目,:
不是合法的驱动器号,而是 Raymond Chen says it's a bug。它存在于我计算机上的 Windows 环境中,即使我使用 Win-R 直接启动 Cygwin bash 而没有使用 cmd.exe,所以不清楚实际设置它是什么。
我发现我的环境变量有一条奇怪的线:
$ env ... !::=::\ ...
当我启动 shell 或 运行 bash 脚本时,它有时存在,有时不存在。当它不存在时,我对 subshells $(...) 的 bash 调用需要 3 个转义反斜杠,而不是每个 1.
知道它是什么以及如何设置它吗?
这是 Cygwin 对 Windows 命令处理器 (cmd.exe) 创建的 special environment variables 之一的表示,以便以相同的方式跟踪每个驱动器的单独当前目录 MS- DOS 做到了。您还应该在 env 的输出中看到 !C:=C:\Users\Ross Ridge
之类的条目。 Windows 命令处理器以 =X:=X:\Path
的形式创建它们,但 Cygwin 将初始 =
更改为 !
以使其成为合法的 Unix 环境条目。
所以你在 Cygwin 环境中看到 !::=::\
的原因是因为 =::=::\
在 Cygwin 继承的 Windows 环境中。我不确定为什么 Windows 环境中有一个 =::=::\
条目,:
不是合法的驱动器号,而是 Raymond Chen says it's a bug。它存在于我计算机上的 Windows 环境中,即使我使用 Win-R 直接启动 Cygwin bash 而没有使用 cmd.exe,所以不清楚实际设置它是什么。