用脚本模拟抽签
1、写一个脚本执行后,输入名字,产生随机数01-99之间的数字。
2、如果相同的名字重复输入,抓到的数字还是第一次抓取的结果,
3、前面已经抓到的数字,下次不能在出现相同数字。
4、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出
继续等待别的学生输入。
理性分析:一个随机数对应一个名字,一个名字可以对应多个数字,但数字不能重复出现。唉,,好像不能这么理解,换成一个随机数对应一个名字,一个名字可以只能对应一个数字,且数字不能重复出现
#!/bin/bash
while :
do
read -p "请输入名字:" name
if [ -f /tmp/test.log ];then
name1=`cat /tmp/test.log | awk -F: '{print $1}' | grep "$name"`
if [ "$name1" != "$name" ];then #名字不重复情况下
radomnum=`echo $RANDOM | awk -F "" '{print $2 $3}'`
while :
do
num=`cat /work/test/1.log | awk -F: '{print $2}' | grep "$aa"`
if [ "$radomnum" == "$num" ];then #数字已经存在情况下
echo "该数字已存在!!!"
radomnum=`echo $RANDOM | awk -F "" '{print $2 $3}'`
else
break
fi
done
echo "$name:$radomnum" | tee -a /tmp/test.log
else
oldname=`cat /tmp/test.log | grep "$name" | awk -F: '{print $2}'` #名字重复
echo "重复名字: " $oldname
fi
else
a=`echo $RANDOM | awk -F "" '{print $2 $3}'`
echo "$name:$a" | tee -a /tmp/test.log
fi
done
测试
查看test.log