目录
一.概念
(一)什么是数组?
(二)数组的表现方式
(三)数组的数据类型
二.运用数组查看、修改、删除相关信息
(1)查看数组的元素列表
(2)查看数组的长度(元素的个数)
(3)查看数组的元素下标
(4)查看某个下标的元素值
(5)将数组分片
三.数组遍历和重新定义
四.数组追加数值
五.使用函数运用数值
(一)向函数传数组参数
(二)从函数返回数组
六.实操运用
(1)判断数组是否完整
一.概念
(一)什么是数组?
数组是一种数据结构,用于存储相同类型的元素的集合。它由一组相同类型的元素组成,并按照一定的顺序排列。每个元素在数组中都有一个唯一的索引,可以通过索引来访问和修改数组元素。
数组可以用于存储任意类型的数据,如整数、浮点数、字符等。
(二)数组的表现方式
(1)数组名=(数值1 数值2 数值3)
(2)数组名=([0]数值 [1]数值 [2]数值 )
(3)列表名="数值1 数值2 数值3"
数组名=($列表名)
(4)数组名[0]="数值"
数组名[1]="数值"
数组名[2]="数值"
(三)数组的数据类型
- 数值型 (10 20 30 40 50 60)
- 字符型 ("a" "b" "c" "d" "e") 或 ('a' 'b' 'c' 'd' 'e')
二.运用数组查看、修改、删除相关信息
(1)查看数组的元素列表
echo ${数组名[@]} # @ 可以更换成 *
echo ${数组名[*]}
(2)查看数组的长度(元素的个数)
echo ${#数组名[@]}
echo ${#数组名[*]}
(3)查看数组的元素下标
echo ${!数组名[@]}
echo ${!数组名[*]}
(4)查看某个下标的元素值
echo ${数组名[下标]}
(5)将数组分片
echo ${数组名[@]:下标:长度}
echo ${数组名[*]:下标:长度}
三.数组遍历和重新定义
arr=(1 2 3 4 5)
n=0
for i in ${arr[@]}
doarr[$n]=$[i*2]let n++
done
四.数组追加数值
1)数组名[新下标]=新数值
2)数组名[数组长度]=新数值 #注意:此方法只仅适用于完整的数组
3)数组名+=(新数值1 新数值2 ....)
4)数组名=("${数组名[@]}" 新数值1 新数值2 ....)
五.使用函数运用数值
(一)向函数传数组参数
函数名() {
数组2=($@) #在函数体内将传入的列表重新组成数组
....
}函数名 ${数组1[@]} #在函数体外将数组分解成列表传入
(二)从函数返回数组
函数名(){
....
echo ${数组2[@]} #在函数体内以列表形式返回值
}数组1=(函数名 参数) #在函数体外将函数执行的结果重新组合成数组
六.实操运用
(1)判断数组是否完整
#!/bin/bash
#判断数组是否完整
array1=(10 20 30 40 50 60)
array3=([0]="a" [1]="b" [2]="c" [3]="d" [5]="f")length1=${#array1[@]}
length3=${#array3[@]}last1=$[length1 - 1]
last3=$[length3 - 1]arr1_last=${array1[$last1]}
arr3_last=${array3[$last3]}ARR1_LAST=$(echo ${array1[@]} | awk '{print $NF}')
ARR3_LAST=$(echo ${array3[@]} | awk '{print $NF}')if [ "$arr1_last" == "$ARR1_LAST" ];thenecho "array1 为完整的数组"
elseecho "array1 数组不完整"
fiif [ "$arr3_last" == "$ARR3_LAST" ];thenecho "array3 为完整的数组"
elseecho "array3 数组不完整"
fi