13.3-Shell脚本进阶之until、shift

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"
posted @ 2020-09-29 15:03  人生值得  阅读(229)  评论(0编辑  收藏  举报