何为数组?
数组是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。
数组的作用是用于储存多个相同类型数据的集合。
数组定义方法
方法一:
数组名=(元素1 元素2 元素3 元素4 ...)
a=(10 20 30 40 50)
例:
方法二:下标定义元素
数组名=([下标1]=元素1 [下标2]=元素2 [下标3]=元素3 [下标4]=元素4 ...)
a=([0]=10 [1]=20 [2]=30 [3]=40 [4]=50)
例:
方法三:引用列表定义数组
列表名="元素1 元素2 元素3 元素4.."
b=“10 20 30 40 50”
a=($b)
例:
方法四:逐个赋值
数组名[下标1]="元素1"
数组名[下标2]="元素2"
数组名[下标3]="元素3"
a[0]="10"
a[1]="20"
a[2]="30"
a[3]="40"
例:
查看数组内所有元素
1、echo $a 输出第一个元素
2、echo ${a [*]} 输出所有元素
3、echo ${a [@]} 输出所有元素
4、echo ${#a[*]} 或 echo ${#a[@]}显示长度(即数组内含有多少个元素)
查看数组内某一个元素
格式:
echo ${数组名[下标数]} 注意下标数是从0开始计算
例:
此时查看的是数组中下标数为1的元素,即数组中的第二个位置的元素,所有输出的值为20
查看数组内最后一个元素的值
格式一:
echo ${a[-1]}
例:
格式二(可以用该方法查看最后一个元素值,判断这个数组的下标是否完整):
例:
获取数组内倒数第二个元素的值
格式:
echo ${a[-2]}
例
数组截取
格式:
${数组名[@]:起始位置:截取长度} #起始位置以下标为准,从0开始
例一:
截取起始下标为1,长度为2的数组片段,即数组下标为1到2的数组片段
例二:
截取起始下标为1,长度为4的数组片段,即数组下标为1到4的数组片段
数组元素临时替换
格式:
echo ${数组名[@]/旧字符/新字符} #新字符替换数组中匹配到的所有旧字符元素
例(只有一个旧字符):
例(数组中有多个相同的就字符):
例(将所有0替换成8)
tip:上述所有替换中,并不改变原有数组的元素
数组重新赋值
格式:
数组名=(${数组名[@]/旧字符/新字符})
例:
删除数组
删除数组内的某一个元素
格式:
unset 数组名[下标数]
例:
删除整个数组
格式:
unset 数组名[*] 或 unset 数组名[@]
例:
用for语句遍历出数组中所有元素
例一:
例二(通过下标遍历):
tip:若下标不为连续,对应下标无元素,则该下标的值为空
数组的值传给函数
例:
注:函数中$*的意思是调用函数后面所有的参数,若将$*换为$1则只会获取调用函数时数组的第一个元素,不会获取所有元素;如下所示: