1.每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并退出脚本。
[root@localhost /data/scripts]#bash !*
bash while_hacker.sh
^C
[root@localhost /data/scripts]#cat while_hacker.sh
#!/bin/bash
#********************************************************************
#Author: Kevin.Wen
#Revision: 1.0
#QQ: 2510905014
#Date: 2020-09-29
#FileName: while_hacker.sh
#********************************************************************
until false;do
if who |grep "^hacker\>"&>/dev/null;then
who|grep "^hacker\>">/var/log/login.log
break
fi
sleep 3
done
2.随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出。
[root@localhost /data/scripts]#cat !*
cat whileread_random.sh
#!/bin/bash
#********************************************************************
#Author: Kevin.Wen
#Revision: 1.0
#QQ: 2510905014
#Date: 2020-09-28
#FileName: whileread_random.sh
#********************************************************************
NUM=$[RANDOM%10]
while read -p "输入0-9之间的数字: " input ;do
if grep '^[[:digit:]]*$' <<< "$input" ;then
if [ $input -eq $NUM ];then
echo "恭喜你猜对了!"
break
elif [ $input -gt $NUM ];then
echo "数字太大,重新猜!"
else
echo "数字太小,重新猜!"
fi
else
echo "请输入数字"
fi
done
3.用文件名做为参数,统计所有参数文件的总行数。
[root@localhost /data/scripts]#bash while_file.sh test.txt
统计文件: test.txt
文件总行数: 6
finish
[root@localhost /data/scripts]#cat while_file.sh
#!/bin/bash
#********************************************************************
#Author: Kevin.Wen
#Revision: 1.0
#QQ: 2510905014
#Date: 2020-09-29
#FileName: while_file.sh
#********************************************************************
if [ $# -eq 0 ];then
echo "Please input file path"
else
until [ -z "$1" ];do
echo "统计文件: $1"
echo "文件总行数: `wc -l $1|cut -d " " -f1`"
echo
shift
done
echo "finish"
fi
4.用二个以上的数字为参数,显示其中的最大值和最小值。
[root@localhost /data/scripts]#bash while_maxmin.sh 10 100
maxnum is 100
minnum is 10
[root@localhost /data/scripts]#cat while_maxmin.sh
#!/bin/bash
#********************************************************************
#Author: Kevin.Wen
#Revision: 1.0
#QQ: 2510905014
#Date: 2020-09-29
#FileName: while_maxmin.sh
#********************************************************************
max=$1
min=$1
while [ $# -gt 0 ];do
if [ $1 -lt $min ];then
min=$1
fi
if [ $1 -gt $max ];then
max=$1
fi
shift
done
echo "maxnum is $max"
echo "minnum is $min"