文章目錄
- macos避免用 USERNAME 作為你的自定義變量名
- macos常見且應該避免被覆蓋的系統環境變量
macos避免用 USERNAME 作為你的自定義變量名
問題:
你執行了:export USERNAME=“admin”
然后執行:echo ${USERNAME}
輸出卻是:xxx
問題分析:
USERNAME 在 macOS(以及許多類 Unix 系統)是一個被系統預設的特殊環境變量。macOS 上 USERNAME 一般會自動指向當前登錄用戶(如 xxx),設定新的 USERNAME 會被系統自動覆蓋或失效。
macos常見且應該避免被覆蓋的系統環境變量
在 macOS(以及大部分 Unix/Linux 系統)里,有一些環境變量是系統或 shell 預定義和保留的。使用這些名字作為自己腳本/臨時變量容易引發沖突或意外現象。
以下是一些常見且應該避免被覆蓋的系統環境變量:
變量名 | 含義 |
---|---|
HOME | 用戶主目錄(如 /Users/yourname ) |
USER | 當前用戶名(有時是登錄用戶) |
USERNAME | (部分 shell/系統)當前用戶名 |
SHELL | 當前 shell 路徑,如 /bin/zsh |
PATH | 可執行文件查找路徑(用 : 分隔的各目錄) |
PWD | 當前工作目錄 |
OLDPWD | 上一次工作目錄 |
LANG | 當前語言和地區設置 |
TERM | 終端類型 |
LOGNAME | 登錄用戶名 |
SSH_* | SSH 相關(如 SSH_CLIENT 、SSH_TTY 等) |
TMPDIR | 臨時文件目錄路徑 |
HOME | 主目錄路徑 |
EDITOR | 默認文本編輯器 |
MAIL | 郵箱路徑 |