概述
今天主要分享一个有趣的shell脚本,用来实现抓阄,平时就不用剪刀石头布了。
需求
使用shell编写一个抓阄的程序:
1、执行脚本后,输入英文名字全拼,产生随机数01-99之间的数字,数字越大评分就去高,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别人输入。
实现脚本
#!/bin/bash
Randow_Temp=/tmp/randow.test
name_Out_File1=/tmp/name_Out_File1.test
name_Out_File2=/tmp/name_Out_File2.test
>$name_Out_File1
>$name_Out_File2
>$Randow_Temp
trap 'echo "请勿使用 Ctrl+c"' 2
Randow() {
sum=`echo $RANDOM |cut -c-2`
grep $sum $Randow_Temp
if [ $? -eq 0 ];then
Randow
else
echo $sum >>$Randow_Temp
daxiao=$sum
fi
}
Print() {
read -p "请输入名字的拼音:" Name
Randow
echo $Name $daxiao >>$name_Out_File
}
while true
do
clear
echo ""
echo -e "\\033[32m 这个程序会将随机数字排名前三的同学显示出来!\\033[0m"
echo -e "\\033[31m 退出脚本请使用 'exit' \\033[0m"
echo ""
head -4 $name_Out_File2
read -p "请输入名字的拼音:" "Name"
if [ "$Name" == exit ]
then
exit
fi
Randow
echo $daxiao $Name >>$name_Out_File1
echo "随机数最大的三位同学是:" >$name_Out_File2
sort -k1 -r $name_Out_File1 |column -t >>$name_Out_File2
clear
done
脚本结果
测试如下:
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~