Shell脚本 | 考勤统计

Shell脚本 | 考勤统计

提示:编写简单的Shell脚本文件,实现对考勤文件(.csv)数据的统计

一,准备好要遍历的考勤文件:

(1)准备四个考勤文件,统一放 /home/class/18-2 目录下:

在这里插入图片描述

(2)文件内容格式:

在这里插入图片描述

二,编写脚本

(1)统计单个人的考勤数据:

#!/bin/bash
#注意变量两边不能有等号
sum=0
read -p "请输入要统计学生的学号:" number
#遍历文件 
for file in /home/class/18-2/*
do
#循环遍历目录:
# -d 判断文件名是否为目录 -f判断文件名是否为文件
if [ -f "$file" ]
then 
  #echo "$file is directory"
  n=` grep -o ${number} $file | wc -l  `
  sum=$(( $sum+n )) 
  echo $sum
fi
done
echo ${number}签到 : $sum

运行结果:
在这里插入图片描述

(2)统计每一个人的签到次数并打印

#!/bin/bash
sum=0
declare -A stduent_array
declare -A student_array_sum
for (( a=1; a<=55; a++ ))
do 
        student_array[a]=$[1809102000+$a]
        student_array_sum[a]=0
done
for(( b=1; b<=55; b++))
do
        sum=0
        #遍历文件 
        for file in /home/class/18-2/*
        do  
        #循环遍历目录:
        # -d 判断文件名是否为目录 -f判断文件名是否为文件
        if [ -f "$file" ]
        then 
          n=` grep -o ${student_array[$b]} $file | wc -l  `
          #echo $n
          sum=$(( $sum+n )) 
        fi  
        done
        echo " 学号:${student_array[$b]} 签到: $sum 次"
done        

运行结果:

在这里插入图片描述


版权声明:本文为weixin_44064937原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。