6.7 数组(Arrays)

待完善

特性


数组大小无上限
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),貌似这种用法无效

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容