Path

哪個是真正的 PATH 變數

  • May 16, 2017

在我的辦公室電腦上,我似乎有兩個PATH變數。

$path : 這由“”(空格)分隔

$PATH :這由“:”(冒號)分隔

雖然當我更新一個時,另一個也會更新。這是 Linux 中的正常行為還是我的機器上發生了什麼奇怪的事情?

我應該保留它們,還是刪除其中一個?

**編輯:**我正在使用csh,我發現這是因為我的一些同事正在更新“路徑”變數,而其他人則使用PATH. 雖然我刪除了我的所有更新PATH.cshrc但當我嘗試回應它們時它仍然出現。

真正的PATH變數是大寫的,除了 (t)csh 本身,它有點複雜。

PATH是一個環境變數,所有應用程序(不僅僅是外殼程序)都會查找它以按名稱呼叫程序。的值PATH是一個字元串,列出了用冒號分隔的目錄名稱。

為方便起見,csh 還提供了一個名為path. 這個變數的值是一個字元串列表,每個字元串都是一個目錄名。無論何時設置path,csh 都會自動設置PATH為元素之間的path元素串聯:

如果您設置PATH,不受影響setpath此外,csh 設置PATH環境變數以匹配其path內部變數,因此set PATH=...沒有實際效果。

如果您設置PATH,會相應setenvpath更新。但是setenv PATH …不會影響$PATH擴展到的內容,這使得使用起來很尷尬。

結果是在 csh 中,你應該堅持使用path. 但在其他任何地方PATH都是您唯一能看到的。

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