1.功能簡(jiǎn)介
declare(別名 typeset)屬 Shell 內(nèi)建命令,用于申明 Shell 變量并設(shè)置變量屬性,或查看已定義的 Shell 變量和函數(shù)。若不加上任何參數(shù),只執(zhí)行 declare/typeset 則會(huì)顯示全部的 Shell 變量與函數(shù)(與執(zhí)行 set 指令的效果相同)。
2.命令格式
declare [-aAfFgilrtux] [-p] [name[=value] 。..] typeset [-aAfFgilrtux] [-p] [name[=value] 。..]
3.選項(xiàng)說明
-a:申明數(shù)組變量 -A:申明關(guān)聯(lián)數(shù)組,可以使用字符串作為數(shù)組索引 -f:僅顯示已定義的函數(shù) -F:不顯示函數(shù)定義 -g:指定變量為全局變量,即使在函數(shù)內(nèi)定義變量 -i:聲明整型變量 -l:將變量值的小寫字母變?yōu)樾?-r:設(shè)置只讀屬性 -t:設(shè)置變量跟蹤屬性,用于跟蹤函數(shù)進(jìn)行調(diào)試,對(duì)于變量沒有特殊意義 -u:變量值的大寫字母變?yōu)榇髮?-x:將指定的Shell變量換成環(huán)境變量 -p:顯示變量定義的方式和值 +:取消變量屬性,但是 +a 和 +r 無(wú)效,無(wú)法刪除數(shù)組和只讀屬性,可以使用unset刪除數(shù)組,但是 unset 不能刪除只讀變量
4.示例
(1)定義關(guān)聯(lián)數(shù)組并訪問。
declare -A assArray=([lucy]=beijing [yoona]=shanghai) #讀取關(guān)聯(lián)數(shù)組全部?jī)?nèi)容 echo ${assArray[*]} #或 echo ${assArray[@]} #輸出 beijing shanghai #讀取指定索引的數(shù)組值 echo ${assArray[lucy]} #輸出: beijing #列出數(shù)組索引列表 echo ${!assArray[*]} #或 echo ${!assArray[@]} #輸出 yoona lucy
(2)定義只讀變量。
declare -r name1=“l(fā)vlv1” #或 typeset -r name2=“l(fā)vlv2” #或 readonly name3=“l(fā)vlv3”
Shell 規(guī)定,只讀變量生命周期與當(dāng)前 Shell 腳本進(jìn)程相同,且不能消除只讀屬性和刪除只讀變量,除非 kill 當(dāng)前 Shell 腳本進(jìn)程。
(3)使用-p選項(xiàng)顯示變量 name1 和 name2 的定義方式和當(dāng)前值。
declare -p name1 name2 #輸出 declare -r name1=“l(fā)vlv1” declare -r name2=“l(fā)vlv2”
(4)使用-x選項(xiàng)將shell變量轉(zhuǎn)換為臨時(shí)環(huán)境變量,供當(dāng)前Shell會(huì)話的其他shell進(jìn)程使用,退出當(dāng)前Shell會(huì)話則失效。
declare -x name1;
(5)顯示所有 Shell 環(huán)境變量。
declare -x
(6)使用+x選項(xiàng)取消變量為環(huán)境變量。
delcare +x name1
(7)申明整型變量,賦值浮點(diǎn)型數(shù)值將報(bào)錯(cuò)。
declare -i integer=666
原文標(biāo)題:每天一個(gè) Linux 命令(128):declare/typeset 命令
文章出處:【微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
Linux
+關(guān)注
關(guān)注
87文章
11123瀏覽量
207910 -
命令
+關(guān)注
關(guān)注
5文章
658瀏覽量
21928
原文標(biāo)題:每天一個(gè) Linux 命令(128):declare/typeset 命令
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論