readonly
標記shell變量或函數爲只讀
語法
1readonly [-aAf] [name[=value] ...]
2readonly -p
主要用途
- 定義一到多個變量並設置只讀屬性。
- 爲已定義的一到多個變量設置只讀屬性。
- 顯示全部包含只讀屬性的變量。
- 爲已定義的一到多個函數設置只讀屬性。
- 顯示全部包含只讀屬性的函數。
選項
1-a:指向數組。
2-A:指向關聯數組。
3-f:指向函數。
4-p:顯示全部只讀變量。
5--:在它之後的選項無效。
參數
1name(可選):變量名或函數名
2value(可選):變量的值
返回值
readonly返回true除非你提供了非法選項或非法名稱。
例子
1# 定義變量並增加只讀屬性
2readonly var1=13 var2
3readonly -a arr1=(1 2 3 4 5) arr2=('z' 'x' 'c')
4# 必須有 '-A' 選項
5readonly -A dict1=(['key1']='value1')
1# 先定義變量、函數,然後再爲它們添加只讀屬性
2max=3
3readonly max
4
5# 數組定義時可以不加 `declare -a`
6seasons=('spring' 'summer' 'autumn' 'winter')
7# 爲數組添加只讀屬性時可以不加 `-a` 選項
8readonly seasons
9
10declare -A man=(['age']=23 ['height']='190cm')
11# 爲關聯數組添加只讀屬性時可以不加 `-A` 選項
12readonly man
13
14function foo(){ echo 'bar'; }
15# 爲函數添加只讀屬性時必須加 `-f` 選項
16readonly -f foo
1# 顯示全部只讀變量,以下兩個命令的顯示結果一樣
2readonly
3readonly -p
4# 顯示全部擁有隻讀屬性的數組
5readonly -a
6# 顯示全部擁有隻讀屬性的關聯數組
7readonly -A
8# 顯示全部擁有隻讀屬性的函數
9readonly -f
常見錯誤
對於只讀變量而言,若用戶對其值進行修改,則會立即報錯。例如,使用該指令定義一個只讀變量"test",並且將其值初始化爲"ok",輸入如下命令:
1[root@localhost ~]# readonly test='ok' #定義只讀變量並初始化
那麼當用戶直接修改該只讀變量時就會報錯,如下所示:
1[root@localhost ~]# test='my' #試圖修改只讀變量的值
2-bash: test: readonly variable
當用戶試圖修改只讀變量的值時,會被提示該變量爲只讀變量。
注意
- 該命令是bash內建命令,相關的幫助信息請查看
help
命令。 declare +r
不能去除只讀屬性,unset
不能刪除只讀變量。
來源:https://github.com/jaywcjlove/linux-command
最後修改於: Wednesday, January 31, 2024
版權申明:
- 未標註來源的內容皆為原創,未經授權請勿轉載(因轉載後排版往往錯亂、內容不可控、無法持續更新等);
- 非營利為目的,演繹本博客任何內容,請以'原文出處'或者'參考鏈接'等方式給出本站相關網頁地址(方便讀者)。