shell小程序
因此需要挑选学生,因此需要一个抓阄的程序:
要求:
1、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,
数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。
2、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出
继续等待别的学生输入。
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
shell小程序的更多相关文章
- Shell脚本 小程序演示
一般的shell编程 场景贯穿了几个熟知的步骤: ●显示消息●获取用户输入●存储值到文件●处理存储的数据 这里写一个小程序 包含以上几部 #!/bin/bash while true do #echo ...
- 自动生成.py文件头部的C语言小程序
每次都 vi xxx.py 然后再打 #!/usr/bin/env python 等等的程序头信息感觉有点麻烦,于是便想着写一个小程序自动生成这些头信息了,顺便在 ~/.bashrc 里写入 alia ...
- python学习之最简单的获取本机ip信息的小程序
文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉py ...
- 【腾讯优测干货分享】微信小程序之自动化亲密接触
本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/HcPakz5CV1SHnu-U8n85pw 导语 山雨欲来风满楼,最 ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)
一 前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件, ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载
一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...
- 微信小程序语音识别服务搭建全过程解析(项目开源在github)
silk v3录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) ## 重要的写在前面 重要事项一: 目前本文中提到的API已支持微信小程序录音文件格式:silk v ...
- 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老接口silk录音)
silk v3(或新录音接口mp3)录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) 重要的写在前面 重要事项一: 所有相关更新,我优先更新到我个人博客中,其它地方 ...
- 微信小程序语音与讯飞语音识别接口(Java)
项目需求,需要使用讯飞的语音识别接口,将微信小程序上传的录音文件识别成文字返回 而微信小程序上传的文件格式是silk的,而讯飞接口能识别wav 格式的文件,所以需要将小程序上传的silk文件转成wav ...
随机推荐
- 【Linux】多睡/少睡一小时!冬夏令时全解析
多伦多2016年11月6日凌晨2点开始起时间调回一小时,时间到凌晨2点时自动跳回到1点,大家可以多睡一小时(或者多一小时写essay的时间)~ 多伦多2017年3月12日凌晨2点开始时间拨快一小时时间 ...
- vs2005升级到vs2010相关问题
1.项目编译失败,报 Resgen.exe 退出 ,错误代码2 处理方式: http://jingyan.baidu.com/article/90895e0fe80c6064ed6b0b6b.html ...
- 配置struts tags 输出HTML
<s:property escape="false" value="vaMsg"/> escape="false"则vaMsg内 ...
- STL之Map的运用
Map是c++的一个标准容器,她提供了非常好一对一的关系,在一些程序中建立一个map能够起到事半功倍的效果,总结了一些map基本简单有用的操作! 1. map最主要的构造函数: map<s ...
- 用 jQuery Masonry 插件创建瀑布流式的页面(转)
瀑布流式的页面,最早我是在国外的一个叫 Pinterest 的网站上看到,这个网站爆发,后来国内的很多网站也使用了这种瀑布流方式来展示页面(我不太喜欢瀑布流这个名字). 我们可以使用 jQuery 的 ...
- Python built-in函数的源码实现定位
http://blog.nsfocus.net/locate-python-built-in-function/
- mysql datetime、date、time、timestamp区别
我们看看这几个数据库中(mysql.oracle和sqlserver)如何表示时间 mysql数据库:它们分别是 date.datetime.time.timestamp和year.date :“yy ...
- Apache的RewriteRule规则详细介绍
R[=code](force redirect) 强制外部重定向 (rkyW z强制在替代字符串加上http://thishost[:thisport]/前缀重定向到外部的URL.如果code不指定, ...
- WinServer 之 发布WebService后调用出现" The test form is only available for requests from the local machine. "
当您尝试从远程计算机访问 Web 服务时,不会显示“调用”按钮.并且,您会收到以下错误信息: The test form is only available for requests from the ...
- 网页js生成当前年月日 星期
只需将下面代码插入需要显示日期的地方即可 <div style="color: brown; font-size: 10px;">今天是: <script lan ...