shell编程(三)数组
一、数组定义
shell中支持数组类型,数组是若干数据的集合,其中的每一份数据称为元素
Bash Shell中只支持一维数组
1、索引数组
有索引下标的数组,也是普通数组
格式:shell中使用括号()来表示数组,数组中的元素使用空格分隔
shell中创建数组的四种方式:
方式一:arr_name=(item1 item2 item 3 …)
方式二:arr_name=([索引下标1]=item1 [索引下标2]=item2 …)
方式三:declare -a arr_name=(item1 item2 item 3 …)
方式四:declare -a arr_name=([索引下标1]=item1 [索引下标2]=item2 …)
注意:
- 数组的下标可以是不连续的
- 数组是弱类型,里面元素的类型可以不一样
- 数组定义后里面的元素通过下标还可以重新赋值
2、关联数组
关联数组也称为键值对数组(key-value数组),键key作为数组下标,值value作为数组元素
语法:
declare -A 关联数组名=([字符串key1]=value1 [字符串key2]=value2 …)
注意:关联数组不能使用索引数组方式一的方式来创建
二、数组元素的获取
-
通过下标获取
-
获取值的同时还可以把这个值赋值给其他的变量
-
获取数组中所有元素
-
获取数组的长度
-
获取指定索引元素值的长度
索引数组示例
关联数组示例 -
获取指定key的元素值
-
获取所有的元素
三、数组的拼接、删除
1、数组的拼接:可以使用@和*获取数组的所有元素后拼接成一个新的数组
语法
-
arr_name=(${arr1[@]} ${arr2[@]})
-
arr_name=(${arr1[*]} ${arr2[*]})
2、数组的删除 -
删除数组指定索引的元素 unset arr_name[n]
-
删除数组 unset arr_name
-
关联数组通过unset arr_name[key]的方式删除指定元素