定义
同其他编程语言一样,数组用于保存多个数据
将之前的多个变量放到一个数组中
数组根据索引的不同可以分为 普通数组 和 关联数组
所谓关联数组,就是索引可以自定义;普通的数组索引只能一个一个按数字递增
创建数组
定义普通数组
arr=(1 2 3)
数据项通过 空格 隔开,而不是习以为常的逗号
还可以手动指定索引及对应的值
arr=([0]= [1]=2 [2]=3)
这两种方式还可以混合使用
arr=(1 2 3 [4]=9 4)
但是要特别注意,[0] 的方式优先级高于直接写值方式 而且跟在[index] 后面的直接定义的值会基于前面的 index 递增再次设值,如果 index 超过了当前数组大小,则中间那些索引都是空的
定义关联数组
定义关联数组,需要先声明,再赋值
declare -A arr
arr=([zhangsan]=10 [lisi]=15 [wangwu]=9)
操作数组
- 查看指定索引的值
echo ${arr[index]}
- 查看所有值
echo ${arr[@]} 或者 arr[*]
- 查看所有索引
echo ${!arr[@]} 或者 arr[*]
- 查看数组长度
echo ${#arr[@]} 或者 arr[*]
- 查看所有已定义的数组
declard -a
- 截取数组
arr[@] : 开始截取的索引 : 向后截取的个数
未指定个数时,取后面所有元素
echo ${arr[@] : 0 : 2}
- 移除数组定义(和其他变量一样)
unset arr
- 移除数组某一项
unset arr[index]