declare 或 typeset 是一样的功能,就是在宣告变数的属性。如果使用 declare 后面并没有接任何参数, 那么 bash 就会主动的将所有的变数名称与内容通通叫出来,就好像使用 set 一样啦!
[root@linux ~]# declare [-aixr] variable
参数∶
-a  ∶将后面的 variable 定义成为阵列 (array)
-i  ∶将后面接的 variable 定义成为整数数字 (integer)
-x  ∶用法与 export 一样,就是将后面的 variable 变成环境变数;
-r  ∶将一个 variable 的变数设定成为 readonly ,该变数不可被更改内容,也不能 unset
范例∶
范例一∶让变数 sum 进行 100+300+50 的加总结果
[root@linux ~]# sum=100+300+50
[root@linux ~]# echo $sum
100+300+50 
[root@linux ~]# declare -i sum=100+300+50
[root@linux ~]# echo $sum
450      

范例二∶将 sum 变成环境变数
[root@linux ~]# declare -x sum

范例三∶让 sum 变成唯读属性,不可更动!
[root@linux ~]# declare -r sum
[root@linux ~]# sum=tesgting
-bash: sum: readonly variable

范例∶设定上面提到的 var[1] ~ var[3] 的变数。
[root@linux ~]# var[1]="small min"
[root@linux ~]# var[2]="big min"
[root@linux ~]# var[3]="nice min"
[root@linux ~]# echo "${var[1]}, ${var[2]}, ${var[3]}"