macos常见且应该避免被覆盖的系统环境变量(避免用 USERNAME 作为你的自定义变量名)
文章目录
- 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 | 邮箱路径 |