待完善
特性
数组大小无上限
indexed数组索引从0开始
赋予数组变量的属性将应用到其所有元素
当任意元素被赋值后,数组变量被set
空串也是有效的value
种类
- 一维indexed数组
- 一维associative数组(key-value对)
如何初始化
显式声明
declare -a name, 声明一个indexed数组
declare -A name,声明一个associative数组隐世声明
name[subscript]=value
name=(value1 value2 ...),其中value的形式为[subscript]=string,对于indexed数组,“[subscript]=”部分可省略
注:
“=”两端不能有空格。
显示声明中加下标将被忽略,即“declare -a name[subscript]”等价于“declare -a name”。
数组元素
${name[subcript]},对于indexed数组,subcript=-1时相当于取最后一个元素,负数下标以此类推。
如何销毁
“unset name”或“unset name[*]”或“unset name[@]”销毁整个数组
“unset name[subscript]”销毁指定下标的元素
数组长度及数组元素长度
${#name[subscript]},对应于下标为subscript的元素的长度。若subscript为@或*,则表示数组name的长度
数组的索引和key集合
“${!name[@]”或“${!name[*]}”
例子
name=(1 2 3 4 5 6)
name=([1]=1 2 3 [7]=4 5 6)
name=([a]=a [b]=b [c]=c),貌似这种用法无效