文章目录
- 一、数组定义的方法
- 二、数组的操作
- 2.1 数组的输出
- 2.2 删除数组
- 2.3 数组切片
- 2.4 数组的替换
- 2.5 判断数组中是否有空值
- 2.6 追加函数
- 2.7 向函数传入参数
一、数组定义的方法
数组定义的规则
- 数组中的每个元素分分隔符一定为空格隔开
- 每个元素都拥有与其对应的下标,第一个对应的下标值为0
方法一:
数组名=(10 20 30 40 50)
[root@localhost ~]# array=(10 20 30 40 50)
[root@localhost ~]# echo ${array[@]}
10 20 30 40 50
方法二:
数组名=([0]=10 [1]=20 [2]=30 [3]=40 [4]=50)
[root@localhost ~]# array1=([0]=10 [1]=20 [2]=30 [3]=40 [4]=50)
[root@localhost ~]# echo ${array1[@]}
10 20 30 40 50
方法三:
列表名=“10 20 30 40 50”
数组名=($列表名)
[root@localhost ~]# a="10 20 30 40 50"
[root@localhost ~]# array2=$a
[root@localhost ~]# echo ${array2[@]}
10 20 30 40 50
方法四:
数组名[0]=“10”
数组名[1]=“20”
数组名[2]=“30”
数组名[3]=“40”
数组名[4]=“50”
[root@localhost ~]# array3[0]="10"
[root@localhost ~]# array3[1]="20"
[root@localhost ~]# array3[2]="30"
[root@localhost ~]# array3[3]="40"
[root@localhost ~]# array3[4]="50"
[root@localhost ~]# echo ${array3[@]}
10 20 30 40 50
二、数组的操作
2.1 数组的输出
[root@localhost ~]# echo ${array[@]}
10 20 30 40 50
[root@localhost ~]# echo ${array[*]}
10 20 30 40 50
[root@localhost ~]# echo ${array[2]}
30
[root@localhost ~]# echo ${#array[@]}
5
[root@localhost ~]# echo ${!array[@]}
0 1 2 3 4
2.2 删除数组
[root@localhost ~]# echo ${array[@]}
10 20 30 40 50
[root@localhost ~]# unset array[3]
[root@localhost ~]# echo ${array[@]}
10 20 30 50
[root@localhost ~]# unset array[1]
[root@localhost ~]# echo ${array[@]}
10 30 50
[root@localhost ~]# unset array
[root@localhost ~]# echo ${array[@]}
2.3 数组切片
[root@localhost ~]# echo ${array1[@]}
10 20 30 40 50
[root@localhost ~]# echo ${array1[@]:2:1}
30
[root@localhost ~]# echo ${array1[@]:2:2}
30 40
[root@localhost ~]# echo ${array1[@]:1:3}
20 30 40
2.4 数组的替换
[root@localhost ~]# echo ${array1[@]}
10 20 30 40 50
[root@localhost ~]# echo ${array1[@]/1/6}
60 20 30 40 50
[root@localhost ~]# echo ${array1[@]/0/8}
18 28 38 48 58
2.5 判断数组中是否有空值
#!/bin/bash
array4=([0]=10 [2]=20 [4]=40 [5]=50)
length=${#array4[@]}
lastnum=$[length - 1]
lastone=${array4[$lastnum]}
lastys=$(echo ${array4[@]} | awk '{print $NF}')
if [[ $lastone -eq $lastys ]]
then
echo "array4数组是完整的"
else
echo "array4数组不完整"
fi
2.6 追加函数
方法一:
[root@localhost ~]# array3[5]=60
[root@localhost ~]# echo ${array3[@]}
10 20 30 40 50 60
方法二:
[root@localhost ~]# array3[${#array3[@]}]=70
[root@localhost ~]# echo ${array3[@]}
10 20 30 40 50 60 70
方法三:
[root@localhost ~]# array3=("${array3[@]}" "80" "90")
[root@localhost ~]# echo ${array3[@]}
10 20 30 40 50 60 70 80 90
方法四:
[root@localhost ~]# array3+=("100" "110")
[root@localhost ~]# echo ${array3[@]}
10 20 30 40 50 60 70 80 90 100 110
2.7 向函数传入参数
示例一:
[root@localhost ~]# vim test1.sh
#!/bin/bash
#函数内
test1 () {
newarr=$@
echo "函数内的元素值为:${newarr[@]}"
}
#函数外
arr=(10 20 30 40 50)
echo "函数外的元素值为:${arr[@]}"
test1 ${arr[@]}
[root@localhost ~]# sh test1.sh
函数外的元素值为:10 20 30 40 50
函数内的元素值为:10 20 30 40 50
示例二:
[root@localhost ~]# vim test1.sh
#!/bin/bash
test1 () {
newarr=($@)
for ((i=0;i<${#newarr[@]};i++))
do
newarr[$i]=$[2 * ${newarr[$i]}]
done
echo "函数内的元素值为:${newarr[@]}"
}
arr=(10 20 30 40 50)
echo "函数外的元素值为:${arr[@]}"
test1 ${arr[@]}
[root@localhost ~]# sh test1.sh
函数外的元素值为:10 20 30 40 50
函数内的元素值为:20 40 60 80 100