當我運行echo $PATH
重複輸出時快照/bin:/快照/bin出現在最後,看起來很不尋常。
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
這種重複是不需要的嗎?如果是這樣,如何改變這種情況?
答案1
可能,在您~/.bashrc
或您的文件中,~/.profile
有一個命令可以添加到/snap/bin
,而$PATH
無需事先檢查它是否仍在$PATH
.
請注意,當您執行 .txt 檔案中的命令時,變數中的重複條目$PATH
不會產生任何影響$PATH
。另一方面,當您運行不在其中的命令時,可能會出現速度減慢$PATH
(因為當存在重複條目時,命令搜索會無用地執行兩次或多次),儘管我認為很難察覺這種速度減慢。當您想直觀地檢查變數時,重複的條目也有點煩人$PATH
。
如果您想避免 中出現重複的條目$PATH
,您可以在您的檔案中新增此命令~/.profile
(即環境變數的最佳位置):
# remove duplicated paths in PATH variable
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"
此命令用於awk
識別$PATH
變數中的每個項目(它們透過字元分隔:
)並重建$PATH
變量,避免重新添加重複的資料夾。它還保留變數內資料夾的原始排序$PATH
。
您可以~/.profile
使用您喜歡的文字編輯器開啟。如果您透過終端打開它,則不需要,sudo
因為它屬於您的使用者。