我已经找到了我的环境变量行奇怪:什么是环境变量的含义:: = ::
$ env ... !::=::\ ...
当我开始一个壳或运行bash脚本,它有时目前,有时不。而当它不存在时,我的bash调用subshell $(...)需要3个反斜杠而不是每个1.
任何想法是什么以及如何设置它?
我已经找到了我的环境变量行奇怪:什么是环境变量的含义:: = ::
$ env ... !::=::\ ...
当我开始一个壳或运行bash脚本,它有时目前,有时不。而当它不存在时,我的bash调用subshell $(...)需要3个反斜杠而不是每个1.
任何想法是什么以及如何设置它?
这是Cygwin对Windows命令处理器(cmd.exe)创建的special environment variables之一的表示,以跟踪MS-DOS执行相同方式的每个驱动器的单独当前目录。您还应该在env的输出中看到类似!C:=C:\Users\Ross Ridge
的条目。 Windows命令处理器以=X:=X:\Path
的格式创建它们,但Cygwin将初始=
更改为!
以使其成为合法的Unix环境条目。因此=::=::\
是在Cygwin继承的Windows环境中。我不确定为什么在Windows环境中有一个=::=::\
条目,:
不是合法的驱动器号,而是Raymond Chen says it's a bug。即使在我使用Win-R直接启动Cygwin bash而不使用cmd.exe的情况下,它仍存在于我的计算机上的Windows环境中,因此尚不清楚实际设置的是什么。
很好找到和很好的参考链接。这并没有回答有关逃避差异的辅助问题(但我对此事持怀疑态度)。 –
什么操作系统和版本?还bash/zsh/etc?和版本?你是否主要在Ruby或Python(或其他)编程环境中工作?有趣。祝你好运。 – shellter
这是一个bash脚本,在windows7下用cygwin运行。 –
也许你可以尝试在你的文件系统中寻找。尝试对'grep -r'!:: = :: \\'/'进行一些修改。但不知道你需要如何改变它为cygwin,但。 – Aereaux