unset命令可清除变量名及其内容,后续引用返回空值;语法为unset变量名(不加$),支持一次清除多个变量,但无法删除readonly声明的只读变量。

用 unset 命令即可清除已定义的变量值,该操作会彻底删除变量名及其对应的内容,之后再引用该变量将得到空值。
基本清除方法
语法很简单:unset 变量名。注意:命令中不加 $ 符号,只写变量名本身。
-
A=123定义后,执行unset A就清除了 - 清除后运行
echo $A不会输出任何内容(即为空) - 可一次清除多个变量:
unset A B C
不能被 unset 的变量
用 readonly 声明的只读变量无法清除,执行 unset 会报错。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 例如:
readonly PATH后,unset PATH失败 - 若需修改只读变量,必须先重启 shell 或换新会话
环境变量的清除要留意作用域
用 unset 删除环境变量时,只影响当前 shell 及其后续子进程,不影响父进程或其他已存在的 shell。
- 比如在终端里执行
export MYVAR=test再unset MYVAR,该变量就仅在此终端失效 - 如果变量是在
/etc/profile或~/.bashrc中定义的,unset只是临时清除;重新登录或 source 配置文件后又会出现
验证变量是否已被清除
可以用 echo $变量名 或 printenv 变量名 检查——无输出即表示已清除;也可用 set | grep ^变量名= 查看是否还存在于当前 shell 变量列表中。

















