Linux
為什麼 PATH=’$PATH:/Path/to/bin’ 覆蓋了我的 PATH?
在命令行中,我將一個目錄附加到我的 PATH 而不導出它:
$ PATH='$PATH:/home/user/anaconda3/bin'
由於某種原因,這已經覆蓋了 PATH 環境變數,但我不確定為什麼會發生這種情況。上面的 PATH 仍然是一個冒號分隔的目錄列表,應該是這樣,有什麼問題?我通常會在我的 PATH 中添加一個新目錄,但這次我測試了添加它,這會導致意外結果。
現在任何時候我嘗試即使是最簡單的命令,比如
ls
我得到這個錯誤(我期望的),然後提示我安裝我輸入的命令:
bash: sed: command not found...
另外,由於我沒有實際導出 PATH,因此後續命令不應該繼承上述 PATH 變數的環境,那麼是什麼原因導致它發生的呢?
我知道我可以打開一個新的終端視窗來修復它,但我很想知道為什麼會這樣?
單引號抑制參數擴展。
$ foo=42 $ echo '$foo' "$foo" $foo 42