前言
数组算是shell脚本里一个比较基本的操作,用于手动的批量操作。我们所操作的数组的数基本上都是我们手动输入进去的。并非我们预先设置的好的量。
数组的定义
数组是存放相同类型数据的集合,在内存中开辟了连续的空间,通常配合循环使用
数组的分类
普通数组:不需要声明直接定义,下标索引只能是整数
关联数组:需要用declare -A声明否则系统不识别,索引可以是字符串
数组的定义方式
第一种:直接把要加入数组的元素用小括号括起来,中间用空格分开
num=(11 22 33 44 )
${#num}显示字符长度
数组名=(value0 value1 value2)
第二种:精确的给每一个下标索引定义一个值加入数组,索引数字可以不连续
num= ([0]-55 [1]=66 [2]=77 [ 4]-88)
数组名=([0]=value [1]=value [2]=value....)
第三种:先把要加入数组的元素全部先赋值给一个变量,然后引用这个变量加入到数组
list="11 12 13 14"
num= ( $list)
列表名="value0 value1 value2 ...."
数组名=($列表名)
第四种根据下标定义
数组名[ 0]="11"
数组名[0]="22"
数组名[0]="33"
数组名[01="value"
数组名[1]="value"
数组名[2]="value"
数组的数据类型
数值类型
字符类型
使用””或、’定义获取数组的长度
[root@192 ~]# an=(10 20 30 40 50)
[root@192 ~]# an_lg=${an[*]}
[root@192 ~]# echo $an_lg
10 20 30 40 50
[root@192 ~]# an_lg=${an[@]}
[root@192 ~]# echo $an_lg
10 20 30 40 50
[root@192 ~]# an_lg=${#an[@]}
[root@192 ~]# echo $an_lg
5
[root@192 ~]# an_lg=${an[2]}
[root@192 ~]# echo $an_lg
30
元素切片
[root@192 ~]# arr=(1 2 3 4 5 6 7 8 9)
[root@192 ~]# echo ${arr[5]}
6
[root@192 ~]# echo ${arr[*]}
1 2 3 4 5 6 7 8 9
[root@192 ~]# echo ${arr[*]:2:3} #截取数组的下表为2的元素往后的3个元素
3 4 5
[root@192 ~]# echo ${arr[*]:0:3} #截取数组里下表为0的元素往后的3个元素
1 2 3
总结
数组就是很多字符的集合,按照顺序依次输入。可以帮助我们实现批量的操作。或者用于调取顺序的值