unset

刪除指定的shell變量或函數。

概要

1unset [-f] [-v] [-n] [name ...]

主要用途

  • 刪除一到多個shell變量(不包括只讀變量)。
  • 刪除一到多個shell函數。
  • 刪除一到多個具有引用屬性的變量(如果-n選項存在)。

選項

1-f:僅刪除函數。
2-v:僅刪除變量(不包括只讀變量)。
3-n:刪除具有引用屬性的變量名(如果該選項存在)。

參數

name(可選):要刪除的變量或函數。

返回值

返回成功除非選項錯誤或要刪除的變量或函數有隻讀屬性。

例子

1# 刪除變量。
2declare paper_size='B5'
3unset -v paper_size
1# 刪除函數。
2function show_result(){ echo 'Last Command Return: $?'; }
3unset -f show_result
1# 當不指定選項時,優先刪除變量,如果失敗則刪除函數。
2declare -i aa=100
3function aa(){ echo 'aa'; }
4unset aa
5# 變量'aa'已被刪除。
6declare -p aa
7# 函數'aa'存在。
8declare -F|grep aa
 1# 演示unset使用-n選項,name指定了引用變量時的情況。
 2declare a=3
 3# 定義引用變量
 4declare -n b=a
 5# 查看屬性,顯示declare -n b="a"
 6declare -p b
 7# 顯示3
 8echo ${b}
 9# 顯示a
10echo ${!b}
11# 指定-n選項時
12unset -n b
13# 引用變量b已被刪除
14declare -p b
15# 被引用的變量a未被刪除
16declare -p a
 1# 演示unset不使用-n選項,name指定了引用變量時的情況。
 2declare a=3
 3# 定義引用變量
 4declare -n b=a
 5# 查看屬性,顯示declare -n b="a"
 6declare -p b
 7# 顯示3
 8echo ${b}
 9# 顯示a
10echo ${!b}
11# 不指定-n選項時
12unset b
13# 引用變量b未被刪除,顯示declare -n b="a"
14declare -p b
15# 被引用的變量a被刪除
16declare -p a

注意

  1. 該命令是bash內建命令,相關的幫助信息請查看help命令。

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: