UNPKG

1.86 kBMarkdownView Raw
1unset
2===
3
4删除指定的shell变量或函数。
5
6## 概要
7
8```shell
9unset [-f] [-v] [-n] [name ...]
10```
11
12## 主要用途
13
14- 删除一到多个shell变量(不包括只读变量)。
15- 删除一到多个shell函数。
16- 删除一到多个具有引用属性的变量(如果-n选项存在)。
17
18## 选项
19
20```shell
21-f:仅删除函数。
22-v:仅删除变量(不包括只读变量)。
23-n:删除具有引用属性的变量名(如果该选项存在)。
24```
25
26## 参数
27
28name(可选):要删除的变量或函数。
29
30## 返回值
31
32返回成功除非选项错误或要删除的变量或函数有只读属性。
33
34## 例子
35
36```shell
37# 删除变量。
38declare paper_size='B5'
39unset -v paper_size
40```
41```shell
42# 删除函数。
43function show_result(){ echo 'Last Command Return: $?'; }
44unset -f show_result
45```
46```shell
47# 当不指定选项时,优先删除变量,如果失败则删除函数。
48declare -i aa=100
49function aa(){ echo 'aa'; }
50unset aa
51# 变量'aa'已被删除。
52declare -p aa
53# 函数'aa'存在。
54declare -F|grep aa
55```
56```shell
57# 演示unset使用-n选项,name指定了引用变量时的情况。
58declare a=3
59# 定义引用变量
60declare -n b=a
61# 查看属性,显示declare -n b="a"
62declare -p b
63# 显示3
64echo ${b}
65# 显示a
66echo ${!b}
67# 指定-n选项时
68unset -n b
69# 引用变量b已被删除
70declare -p b
71# 被引用的变量a未被删除
72declare -p a
73```
74
75```shell
76# 演示unset不使用-n选项,name指定了引用变量时的情况。
77declare a=3
78# 定义引用变量
79declare -n b=a
80# 查看属性,显示declare -n b="a"
81declare -p b
82# 显示3
83echo ${b}
84# 显示a
85echo ${!b}
86# 不指定-n选项时
87unset b
88# 引用变量b未被删除,显示declare -n b="a"
89declare -p b
90# 被引用的变量a被删除
91declare -p a
92```
93
94### 注意
95
961. 该命令是bash内建命令,相关的帮助信息请查看`help`命令。
97
98
99