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