数组
1.数组的定义
“数组是指有序的元素序列。如果将有限个类型相同的变量的集合命名,那么这个名称就是数组名,而组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。”
2.定义一个数组
(1)使用小括号将变量的值括起来赋值给数组变量,每个变量之间使用空格键间隔
示例
语法:array=(value1 varlue2 ...)
[root@bogon ~]# array=(1 2 3 4 5)
[root@bogon ~]# echo ${array[1]}
2
(2)使用小括号将变量值括起来,同时采用键值对的形式赋值
语法:array=([0]=123 [1]=234 [2]=345 [3]=456 ...)
[root@bogon ~]# array1=([0]=123 [1]=234 [2]=345 [3]=456 ...)
[root@bogon ~]# echo ${array1[*]}
123 234 345 456
(3)使用键值对直接赋值
[root@bogon ~]# array2[0]=abc;array2[1]=bcd;array2[2]=cde
[root@bogon ~]# echo ${array2[@]}
abc bcd cde
(4)命令也可以作为变量,给数组赋值
[root@bogon ~]# array3=(`ls`)
[root@bogon ~]# echo ${array3[@]}
anaconda-ks.cfg a.txt big.sh case1.sh
定义特殊的数组(关联数组)
定义一个关联数组需要使用关键字declare -A
语法
declare -A 数组名
(1)一次赋一个值
[root@bogon ~]# declare -A array5
[root@bogon ~]# array5[4]=5
[root@bogon ~]# array5[3]=4
[root@bogon ~]# array5[2]=3
[root@bogon ~]# array5[1]=2
[root@bogon ~]# array5[0]=1
[root@bogon ~]# echo ${array5[@]} #打印数组的结果
1 2 3 4 5
[root@bogon ~]# echo ${!array5[@]} #打印数组的下标
0 1 2 3 4
一次赋值多个
[root@bogon ~]# declare -A array6
[root@bogon ~]# array6=([0]=1 [1]=2 [2]=3)
[root@bogon ~]# echo ${array6[@]}
1 2 3
[root@bogon ~]# echo ${!array6[@]}
0 1 2
3.查看数组
- 方法一:查看单个数组元素的值
语法: echo ${数组名[index]}
- 方法二:查看数组中全部的元素值
语法:echo ${数组名[@]} 或 echo ${数组名[*]}
4.数组的相关操作
- (1)查看数组元素的下标
语法: echo ${!数组名[@]} 或 echo ${!数组名[*]}
- (2) 获得数组元素的个数,获取元素长度
语法: echo ${#数组名[@]} 或 echo ${#数组名[*]}
- (3)获取某个元素的值
语法: echo ${数组名[index]} #其中index代表元素的下标,从来数字0开始
- (4)添加元素
语法: 数组名[下标]=值
例:echo array[9]=10
- (5)添加多个元素
语法:数组名+=(值得列表)
例:array+=(1 2 3)
- (6)删除某个元素的值
语法:unset 数组名[index] #index是想删除元素对应的下标
例:unset array[1]
- (7)删除整个数组
语法:unset 数组名
例:unset array