什么是数组
一次性定义多个变量
数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。
组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。
用于区分数组的各个元素的数字编号称为下标。元素的下标从0开始。
定义数组
数组用括号来表示,元素用"空格"符号分隔开。
数组名=(value1 value2 value3 value4 ...)
用过下标值定义每个元素。
数组名=([0]=value1 [1]=value2 [2]=value3)
先定义列表,再引用列表的值定义数组。
列表名="value1 value2 value3 value4 value5" 数组名=($列表名)
引用数组的值
获取数组的数据列表
echo ${array[@]} 或 echo ${array[*]}
获取数组的长度
echo ${#数组名[*]}
echo ${#数组名[@]}
查看数组内最后一个元素的值
echo ${array[-1]} //获取最后一个元素的值
echo ${array[-2]} //获取倒数第二个元素的值
数组的常用操作
数组分片
${数组名[@]:起始位置:截取长度} //起始位置从0算起
${数组名[@]} //获取整个数组的元素值
${数组名[@]:0:3} //从下标为0的元素开始截取,共截取3个元素。(即截取元素1到元素3)
${数组名[@]:2:2} //从下标为2的元素开始截取,共截取2个元素。(即截取元素3到元素4)
数组元素替换
临时替换(不会影响原有数组)
echo ${数组名[@]/旧字符/新字符}
永久替换
数组名=(${数组名[@]/旧字符/新字符})
删除数组
删除数组内的某个元素
unset 数组名[n] //删除数组内的某一个元素,n为下标值
删除整个数组
unset 数组名[*] 或 unset 数组名[@]
数组扩写,增加数组内的元素
数组名[n]=元素值
数组名+=(元素值)