# unset - 删除指定的shell变量或函数

unset是和set相反的一个指令,用来删除shell变量或者函数。

# 主要用途

  • 删除一到多个shell变量(不包括只读变量)。
  • 删除一到多个shell函数。
  • 删除一到多个具有引用属性的变量(如果-n选项存在)。

# 适用范围

RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux

# 语法

unset  [-fv]  [name ...]

对于每个名称,删除相应的变量或函数。如果没有提供任何选项,或者给出了“-v”选项,那么每个名称都引用一个shell变量。只读变量可能不会被取消设置。如果指定了“-f”,则每个名称都引用一个shell函数,并删除函数定义。从传递给后续命令的环境中删除每个未设置变量或函数。如果任何COMP_WORDBREAKS,RANDOM,SECONDS,LINENO,HISTCMD,FUNCNAME,GROUPS,DIRSTACK都未设置,则它们将失去它们的特殊属性,即使它们随后被重置。除非名称是只读的,否则退出状态为真。

# 选项

-f       # 删除函数
-v       # 删除变量

# 举例

删除变量

[root@localhost ~]$ set | grep USERS       #查看变量
_=USERS=weijie
[root@localhost ~]$ unset -v USERS         #删除变量
[root@localhost ~]$ set | grep USERS       #查看变量,已经删除
_=USERS