shell中的“数组”
定义数组
数组名=(值1 值2 ... 值n)
[root@MiWiFi-R3-srv ~]# array_name=(value1 value2 value3 value4)
读取数组
${数组名[下标]}
[root@MiWiFi-R3-srv ~]# echo "${array_name}" value1 [root@MiWiFi-R3-srv ~]# echo "${array_name[0]}" value1 [root@MiWiFi-R3-srv ~]# echo "${array_name[1]}" value2 [root@MiWiFi-R3-srv ~]# echo "${array_name[2]}" value3 [root@MiWiFi-R3-srv ~]# echo "${array_name[3]}" value4
获取数组中元素个数
[root@MiWiFi-R3-srv ~]# echo "${#array_name[@]}" 4 [root@MiWiFi-R3-srv ~]# echo "${#array_name[*]}" 4
获取单个元素的的长度(主要是字符串的字符长度)
[root@MiWiFi-R3-srv ~]# echo "${#array_name[0]}" 6
获取数组中所有元素
[root@localhost bash_learn]# echo ${array_name[@]} value1 value2 value3 value4
移除某个元素(依然根据索引位置)
[root@localhost bash_learn]# unset array_name[2] [root@localhost bash_learn]# echo ${array_name[@]} value1 value2 value4
获取所有索引id
[root@localhost bash_learn]# echo ${!array_name[@]} 0 1 2 3
获取指定索引id的元素
[root@localhost bash_learn]# array_name[33]="New_Items" [root@localhost bash_learn]# echo ${array_name[@]} value1 value2 value4 New_Items [root@localhost bash_learn]# echo ${!array_name[@]} 0 1 3 33
关联数组
转载地址:https://www.jb51.net/article/103915.htm
普通数组:只能使用证书作为数组索引 关联数字:可以使用字符串作为数组索引 声明一个变量为关联数组 [root@a ~]# declare -A Array 将元素添加到关联数组中 [root@a ~]# Array=([lucy]=beijing [jack]=shanghai) 或 Array[mike]=tianjin 通过索引访问元素 [root@a ~]# Array[mike]=tianjin [root@a ~]# echo ${Array[mike]} tianjin [root@a ~]# echo ${Array[jack]} shanghai [root@a ~]# echo ${Array[lucy]} beijing 获取数组所有的索引列表 [root@a ~]# echo ${Array[*]} tianjin shanghai beijing 获取数组所有的元素列表 [root@a ~]# echo ${!Array[*]} mike jack lucy 遍历键值对(也就是index和value) [root@a ~]# cat testarray.sh #!/bin/bash declare -A Array Array=([lucy]=beijing [jack]=shanghai [mike]=tianjin) for key in ${!Array[*]} do echo "${key} come from ${Array[$key]}" done [root@a ~]# sh testarray.sh mike come from tianjin jack come from shanghai lucy come from beijing