一、脚本编写
#!/bin/bash
#****************************************************
#Date: 2020-06-25
#Author: Damon Ye
#FileName: countshell.sh
#Description:The test script
#****************************************************
declare -A ArrayForShell
while read EachLine done后面接<将文件重定向给while;while后再接read将文件流赋值给变量
do
ArrayIndex=`echo $EachLine | awk -F: '{print $7}'` awk会以逐行的形式处理本舰。
let ArrayForShell[$ArrayIndex]++ 当使用let时,变量前面不必加上$
done < /etc/passwd
echo "######${!ArrayForShell[@]}######" 数组索引
echo "######${#ArrayForShell[@]}######" 数组元素的个数
echo "######${ArrayForShell[@]}######" 数组元素
for i in ${!ArrayForShell[@]} 数组索引的个数 == for循环执行的次数,这就是关联数组的遍历。
do
echo "$i ::::: ${ArrayForShell[$i]}"
done
二、执行结果
[root@localhost package]# bash countshell.sh
######/sbin/nologin /bin/sync /bin/bash /sbin/shutdown /sbin/halt######
######5######
######37 1 2 1 1######
/sbin/nologin ::::: 37
/bin/sync ::::: 1
/bin/bash ::::: 2
/sbin/shutdown ::::: 1
/sbin/halt ::::: 1
https://blog.csdn.net/a54925171/article/details/102275447