bash - 环境变量是什么意思 !::=::\

标签 bash cygwin environment-variables

我发现我的环境变量有一条奇怪的线:

$ env
...
!::=::\
...

当我启动 shell 或运行 bash 脚本时,它有时存在,有时不存在。当它不存在时,我对子 shell $(...) 的 bash 调用需要 3 个转义反斜杠,而不是每个 1 个。

知道它是什么以及如何设置它吗?

最佳答案

这是 Cygwin 对 special environment variables 之一的表示由 Windows 命令处理器 (cmd.exe) 创建,以便像 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 .即使我使用Win-R直接启动Cygwin bash而不使用cmd.exe,它也存在于我的计算机上的Windows环境中,所以不清楚实际设置它是什么。

关于bash - 环境变量是什么意思 !::=::\,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30740460/

相关文章:

node.js - 我无法从我的 REACT 应用程序的 azure 应用程序服务配置中读取环境变量

linux - xargs : "bash -c" does not pass arguments to command 中的 bash 别名

c - 将线程策略设置为 SCHED_RR 时出现未知错误

php - bash 脚本从命令行运行,但不是从 cron 运行

windows - 从上下文菜单中删除 "Bash Prompt Here"

apache - 在 Windows 上构建 hadoop 2.2

web-services - Heroku 的其他环境变量是什么?

linux - 导出的变量未反射(reflect)在 "env"输出中

linux - 在文件中查找唯一字符串,向上一行并追加?

arrays - 在 shell 脚本中将多行输出解析为数组