1.命令作用
删除指定的变量或函数
2.命令语法
Usage: unset [-f] [-v] [name ...]
3.参数详解
OPTION:
- -f,仅删除函数(若未指定,默认优先删除变量)
- -v,仅删除变量(不包括只读变量)
- name,要删除的变量或函数名(支持多个)
4.常用用例
4.1.函数相关用例
[root@node1 ~]# hello() { echo "World"; } # 定义函数
[root@node1 ~]# hello # 执行函数
World
[root@node1 ~]# unset -f hello # 删除函数
[root@node1 ~]# hello # 再次执行函数提示没有命令
bash: hello: command not found...
[root@node1 ~]#
4.2.变量相关用例
# 普通变量
[root@node1 ~]# aa=9999
[root@node1 ~]# echo $aa
9999
[root@node1 ~]# unset aa
[root@node1 ~]# echo $aa
# 执行输出空行
[root@node1 ~]#
# 只读变量
[root@node1 ~]# readonly -p # 查看只读变量列表
declare -r
... ...
declare -r bb="8888"
[root@node1 ~]# declare -p bb # 指定名称查看只读变量
declare -r bb="8888"
[root@node1 ~]#
[root@node1 ~]#
[root@node1 ~]# readonly bb=8888 # readonly 与 declare -r VAR_NAME="value" 等效
[root@node1 ~]# bb=7777
-bash: bb: readonly variable
[root@node1 ~]# unset -v bb
-bash: unset: bb: cannot unset: readonly variable
[root@node1 ~]# unset bb
-bash: unset: bb: cannot unset: readonly variable
[root@node1 ~]#
# exit 退出关闭终端或者结束shell进程,只读变量就删除了