shell数组

数组
普通数组:只能使用整数作为数组索引
关联数组:可以使用字符串作为数组索引

普通数组
定义数组:books=(linux shell awk epenstack docker)
使用数组:${books[2]}
关联数组
申明关联数组变量:declare -A ass_array1
定义数组:info=([name]=zhangk [sex]=male [age]=23 [height]=120 [skill]=shell)


[root@localhost ~]# declare -A sex      #定义关联数组sex
[root@localhost ~]# sex=([m]=1)       #关联数组增加一个元素
[root@localhost ~]# echo ${sex[@]}
1
[root@localhost ~]# echo ${!sex[@]}
m
[root@localhost ~]# sex+=([f]=1)       #关联数组增加一个元素
[root@localhost ~]# echo ${sex[@]}
1 1
[root@localhost ~]# echo ${!sex[@]}
f m
[root@localhost ~]# let sex[m]++       #关联数组m元素值增加1
[root@localhost ~]# echo ${sex[@]}
1 2

实例:

#!/bin/bash
#使用关联数组统计性别人数
declare -A sex
while read line
do
type=`echo $line | awk '{print $2}'`
let sex[$type]++
done<sex.txt

for i in ${!sex[@]}
do
echo "$i have ${sex[$i]}" 
done

 

posted @ 2020-05-31 15:52  zk01  阅读(137)  评论(0编辑  收藏  举报