declare(别名 typeset)属 Shell 内建命令,用于申明 Shell 变量并设置变量属性,或查看已定义的 Shell 变量和函数。若不加上任何参数,只执行 declare/typeset 则会显示全部的 Shell 变量与函数(与执行 set 指令的效果相同)。
(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[1] [Shell]数组与关联数组 [2] Linux指令范例速查手册.马玉军.北京:科学出版社,2008.P178-P183
