数组
具备某种相同属性的数据的集合
数组中可以存放多个值,方便查找,方便有序的存放
在linux中,数组分为:普通数组(列表)和关联数组(字典)
普通数组的下标必须是整数
关联数组的下标可以是字符
数组的下标是从0开始的
查看数组
declare -a 查看普通数组
declare -A 查看关联数组
定义数组
直接定义
[root@localhost ~]#array1=(11 22 33)
declare -a array1='([0]="11" [1]="22" [2]="33")'
指定下标的方式定义
[root@localhost ~]#array2=([2]=aa [1]=bb [0]=cc)
declare -a array2='([0]="cc" [1]="bb" [2]="aa")'
依次赋值
[root@localhost ~]#array3=()
[root@localhost ~]#array3[0]=A
[root@localhost ~]#array3[1]=B
[root@localhost ~]#array3[2]=C
declare -a array3='([0]="A" [1]="B" [2]="C")'
使用命令
[root@localhost ~]# array4=(`ls /root`) (将root目录下的文件名存到数组array4里)
declare -a array4='([0]="1" [1]="1.txt" [2]="abc.txt" [3]="c" [4]="dome" [5]="hhh" [6]="hhh2" [7]="lianxi" [8]="text" [9]="wenjianjia")'
访问数组
使用变量的方式取值
echo $array1 (默认是取第一个值)
[root@localhost ~]#echo $array1
11
使用下标的方式取值
echo ${array1[1]}
[root@localhost ~]#echo ${array1[1]}
22
反向取值法
echo ${array1[-1]}[root@localhost ~]#echo ${array1[-1]}33注:正向取值,下标从0开始;反向取值,下标从-1开始。
一次取出所有的值
[root@localhost ~]#echo ${array1[*]}11 22 33
添加数组元素
[root@localhost ~]#array1[3]=44declare -a array1='([0]="11" [1]="22" [2]="33" [3]="44")'注:添加元素,如果添加的下标不存在即为添加数据,如果下标已经存在则为修改数据。
删除数组元素
unset [变量名] : 删除变量删除特定某一个数据unset array1[3]删除所有的数据unset array1
关联数组
declare -A array5=()declare -A array5='()'
遍历数组
for循环
for 变量 in 数组do # for循环开始# for循环体done # for循环结束for 变量 in 数组 ; do for循环体1; for循环体2; for循环体3 ; done
作用:
1、作用是遍历数组,对数组中的所有元素进行处理
2、将数组中存储的元素取出来使用(计算,做特殊处理)
for i in ${array1[*]}; do echo $i; done