使用数组统计数据
例一:统计/etc/passwd中/bin/bash和/sbin/nologin的个数有多少
#!/bin/bash #定义变量,拿到/etc/passwd最后一行 NF=`awk -F ":" '{ print $NF }' /etc/passwd` #定义关联数组login declare -A login #遍历NF变量,即etc/passwd最后一行 for i in $NF do #给数组login作为索引,值++ let login[$i]++ done #从login数组中拿到索引 for j in ${!login[*]} do #输出索引及索引对应的值 echo "$j ${login[${j}]}" done
例二:显示access.log中访问IP及次数
#!/bin/bash #取access.log第一行 ip=`awk '{print $1}' access.log` #定义数组ipinfo declare -A ipinfo #遍历变量ip for i in $ip do #变量IP取值赋给ipinfo做索引,相同的将会被++ let ipinfo[$i]++ done #最终拿到ipinfo中的索引,并取对应值 for j in ${!ipinfo[*]} do echo "$j ${ipinfo[${j}]}" done
#上面两个示例思路是统计什么,将什么作为数组索引++,最后遍历数组,取值