我已經找到了我的環境變量行奇怪:什麼是環境變量的含義:: = ::
$ 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