数组的基本用法
数组是一个由若干个同类型变量组成的集合,引用这些变量时可用同一个名字。数组均用连续的存储单元组成,最低地址对应数组的第一个元素,最高地址对应于最后一个元素
bash shell只支持一个数组,数组从0开始标号,以array[x]表示数组元素,那么,array[0]就表示array数组的第一个元素,array[1]表示array数组的第2个元素,array[x]表示array数组的第x+1个元素
声明数组
格式:数组名=(参数1 参数2…)
多个ip地址存入数组中
[root@kafka3 ~]# singer=("kun" kunkun heizi)
[root@kafka3 ~]# echo ${singer[0]}
kun
[root@kafka3 ~]# echo ${singer[1]}
kunkun
[root@kafka3 ~]# echo ${singer[2]}
heizi
[root@kafka3 ~]# echo ${singer[3]}
[root@kafka3 ~]# singer[3]=nong
[root@kafka3 ~]# echo ${singer[3]}
nong
[root@kafka3 ~]# echo ${singer[*]}
kun kunkun heizi nong
[root@kafka3 ~]# echo ${#singer[*]}
4
[root@kafka3 ~]# unset singer[2]
[root@kafka3 ~]# echo ${#singer[*]}
3
[root@kafka3 ~]# echo ${singer[*]}
kun kunkun nong
[root@kafka3 ~]#
数组使用for循环
# 定义一个数组
awk 'BEGIN {arr["apple"]=1; arr["banana"]=2; arr["orange"]=3;}
# 遍历数组
awk 'BEGIN {arr["apple"]=1; arr["banana"]=2; arr["orange"]=3;
for (fruit in arr) {
print fruit, arr[fruit];
}
}'
上面的示例中,首先定义了一个名为arr
的数组,并在数组中存储了三个元素。然后使用for循环遍历数组arr
中的所有元素,将每个元素的键和值都输出到屏幕上。在循环体内部,使用变量fruit
来访问当前遍历到的数组元素的键名,使用arr[fruit]
来访问当前元素的值。
关联数组
在awk中,关联数组(associative array)是一种特殊的数组,它的下标可以是字符串类型。关联数组的使用方式与普通数组类似,可以通过下标来访问和修改数组元素的值。与普通数组不同的是,关联数组的下标可以是任意字符串,而不仅仅是整数类型的下标。
[root@kafka3 nginx]# declare -A name
[root@kafka3 nginx]# name=([user]=xyz [pwd]=123 [age]=18)
[root@kafka3 nginx]# echo ${name[@]}
123 xyz 18
[root@kafka3 nginx]# echo ${!name[@]}
pwd user age
[root@kafka3 nginx]# echo ${name[user]}
xyz