使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量

一、脚本编写

#!/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

猜你喜欢

转载自www.cnblogs.com/ytdyz/p/13191936.html