代码:
1 #!/bin/bash
2
3 [ -e /root/user.txt ] || rm -f /root/user.txt
4 [ -e /root/usercount.txt ] || rm -f /root/usercount.txt
5 touch /root/user.txt
6 touch /root/usercount.txt
7
8 read -p "Please assign a user:" USER
9
10 if cut -d: -f1 /etc/passwd |grep "^$USER$" &> /dev/null;then
11 who | grep "$USER" > /root/user.txt
12 wc -l /root/user.txt | cut -d" " -f1 > /root/usercount.txt
13 COUNT=`cat /root/usercount.txt`
14
15 while [ $COUNT -lt 6 ];do
16 sleep 2
17 echo "$COUNT $USER had log in!"
18 who | grep "$USER" > /root/user.txt
19 wc -l /root/user.txt | cut -d" " -f1 > /root/usercount.txt
20 COUNT=`cat /root/usercount.txt`
21 done
22 echo "WoW! $USER had log in 6 times!"
23 exit
24 else
25 echo "You fool!Give me a correct user!"
26 fi
总结:
开始的时候出现了创建问题,总是出现重复创建目录、文件。后来用[-e ]来判断文件目录是否存在再创建文件或目录得到了解决。
在写循环语句的时候if和while的放置出现问题,如果把if放到while中时会出现条件判断出错的问题。
编写的时候忘了怎么把查询出来的结果赋给一个变量了,最后上网查了下,原来是用反引号来写 COUNT=`cat /root/usercount.txt`
写shell的时候一定要条理逻辑清晰,否则很容易出错。