使用數組統計數據
數組
例一:統計/etc/passwd中/bin/bash和/sbin/nologin的個數有多少bash
#!/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及次數ide
#!/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
#上面兩個示例思路是統計什麼,將什麼做爲數組索引++,最後遍歷數組,取值spa