文章目录
(一)数组的理念
数组是一种有序无序的集合,列表
(二)数组定义的方法
方法一:
数组名=(value0 value1 value2 ...)
方法二:
数组名=([0]=value [1]=value [2]=value ...)
方法三:
列表名="value0 value1 value2"
数组名=($列表名)
方法四:
数组名[0]="value"
数组名[1]="value"
数组名[2]="value"
(三)获取数组的长度
number=(1 2 3 4 5)
#length=${#number[*]}
length=${#number[@]}
echo $length
(四)读取某下表的值
(五)数组遍历
#!/bin/bash
number=(1 2 3 4 5)
for i in ${number[@]}
do
echo $i
done
(六)数组的切片
arr=(12345)
echo ${arr[@] } #输出整个数组
echo ${arr[@]:0:2} #获取${ 数组名[@或*] :起始位置:长度}的值
echo ${arr[@]:2:3}
(七)数组删除
arr=(1 2 3 4 5)
unset arr #删除数组
echo ${arr[*]}
arr=(12345)
unset arr[2 ] #删除第三个元素
echo ${arr[*] }
(八)数组追加元素
方法一:
array_name [index]=value
方法二:
array_name[${#array_name [@]}]=value
方法三:
array_name= ("$ {array_name[@]}" valuel ... valueN)
双引号不能省略,否则,当数组array_name中存在包含空格的元素时会按空格将元素拆分成多个
不能将“@”替换为“*”,如果替换为“*”,不加双引号时与“@"的表现一致,加双引号时,
会将数组array_name中的所有元素作为一个 元素添加到数组中.
方法四:
array_name+= (value1.. . valueN)
待添加元素必须用“()"包围起来,并且多个元索用空格分隔
(九)向函数传数组参数
(十)冒泡排序
(十一)直接选择排序
#!/bin/bash
array=(30 50 20 40 10)
length=${#array[*]}
for((i=1;i<$length;i++)){
index=0
for((j=1;j<=$length-i;j++)){
if [ ${array[$j]} -gt ${array[$index]} ];then
index=$j
fi
}
temp=${array[$length-$i]}
array[$length-$i]=${array[$index]}
array[$index]=$temp
}
echo ${array[*]}