博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell小程序
阅读量:4346 次
发布时间:2019-06-07

本文共 1396 字,大约阅读时间需要 4 分钟。

因此需要挑选学生,因此需要一个抓阄的程序:

要求:
1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,
数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出
继续等待别的学生输入。

 #!/bin/bash
while true;do
  echo -e "\e[1;31m退出请输入:exit  \e[0m"
  read -e -p "ples input you name(拼音):" name name1
  ##判断是否退出程序
  [ "$name" == "exit" ]&& exit 0
  ##判断输入的用户名是否符合以下规则
  echo $name|grep ^[A-Za-z]*$  &>/dev/null
  #判断是否字母
  [ $? -ne 0 ] && {
     clear
     echo -e "\e[1;33m 请输入拼音名!! \e[0m \n"
     continue
  }
  #名字不能为空
  [ -z $name ] && {
      clear
      echo -e "\e[1;33m 名字不能为空!! \e[0m \n"
      continue
  }
  #不能有第二个名字参数
  [ ! -z $name1 ] && {
      clear
      echo -e "\e[1;33m 请输入正确的名字!! \e[0m \n"
      continue
  } 
  [ ! -f b.txt ] && touch b.txt
  ##循环列表检查用户名是否存在,存在则重新输入。
  filename=`awk '{print $1}' b.txt`
  RAT1=Fasle
  for i in $filename;do
      if [ "$i" == "$name" ];then
         clear
         echo -e "\e[1;33m 用户名($name)已经存在,不能输入第二次!! \e[0m \n"
         RAT1=True
         break
      fi
  done
  [ "$RAT1" == "True" ]&&{
         continue
  }
  ##判断文件中是否已经存在的数字就不能在次添加,直到是文件中没有的数字。
  while true;do
      #判断是否已经达到99个数字了
      [ `cat b.txt|wc -l` -eq 99 ] && {
          echo -e "\e[1;33m 数字已经输完!! \e[0m \n"
          break
      }
      num=`echo $(($RANDOM%100))`
      #如果是0或100就重新取值
      [ $num -eq 0 -o $num -eq 100 ] && continue
      filenum=`awk '{print $2}' b.txt`
      RAT=True
      for i in $filenum;do
          if [ $i -eq $num ];then
               RAT=False
               break
          fi
      done
      if [ $RAT == "True" ];then
           clear
           echo -e "\e[1;33m    $name: $num \e[0m \n"
           echo "$name $num" >> b.txt
           break
      fi
   done
done

转载于:https://www.cnblogs.com/wangbaigui/p/4424614.html

你可能感兴趣的文章
集团信息化之路——关于网络电子採购系统的需求报告
查看>>
Android设计模式系列-单例模式
查看>>
hiho一下 第一百零七周 Give My Text Back(微软笔试题)
查看>>
常用正则表达式
查看>>
6.2.7 Math对象的使用
查看>>
Linux 添加PHP curl扩展
查看>>
[ES6] The Iterator Protocol
查看>>
[TypeScript] Generating Definition Files
查看>>
内-外测试
查看>>
HotSpot VM GC 的种类(转)
查看>>
BZOJ3329: Xorequ(二进制数位dp 矩阵快速幂)
查看>>
[转]C#图像处理 (各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)...
查看>>
在此落地
查看>>
Codeforces 678E Another Sith Tournament 状压DP
查看>>
201771010112罗松《面向对象程序设计(java)》第七周学习总结
查看>>
mysql数据库的锁表与解决办法(原博客url:http://www.cnblogs.com/wanghuaijun/p/5949934.html)...
查看>>
Git
查看>>
【CF860E】Arkady and a Nobody-men 长链剖分
查看>>
python爬虫模拟登陆
查看>>
Redis(六)-- SpringMVC整合Redis
查看>>