Linux

為什麼 PATH=’$PATH:/Path/to/bin’ 覆蓋了我的 PATH?

  • July 11, 2018

在命令行中,我將一個目錄附加到我的 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

引用自:https://unix.stackexchange.com/questions/454746