您的位置:首页 > 运维架构 > Shell

2017年最新企业面试题之shell(四)

2017-09-07 22:24 288 查看
2017年最新企业面试题之shell(四)
一、抽签脚本(1)要求如下:
1、写一个脚本执行后,输入名字,产生随机数01-99之间的数字;
2、输入名字后,屏幕输出信息,并将名字和数字记录到文件里;
3、如果相同的名字重复输入,脚本给予提示“名字重复”,要求该学生重新输入并不将本次输入记录到文件里;
4、程序不能退出继续等待别的学生输入。
脚本图片如下:



脚本文档如下:
#!/bin/sh
fun0(){
printf "$name $num\n" >/dev/null
}
fun1(){
read -p "请输入你的名字:" name
}
fun2(){
num=$[ RANDOM%100 ]
echo $name
echo $num
printf "$name $num\n" >>/root/name.txt
usleep 2000000
#clear
}
fun1
fun2
fun3(){
bb=$(grep "$name" /root/name.txt|awk '{print $1}')
if [ -z "$bb" ];then
echo "可以使用"
else
echo "名字重复" && fun0 && main
fi
}
main(){
while true
do
fun1
fun3
fun2
done
}
main
二、抽签脚本(2)要求如下:1、写一个脚本执行后,输入名字,产生随机数01-99之间的数字;2、输入名字后,屏幕输出信息,并将名字和数字记录到文件里;3、如果相同的名字重复输入,脚本给予提示“名字重复”,要求该学生重新输入并不将本次输入记录到文件里;4、前面已经抓到的数字,下次不能再出现相同数字;5、程序不能退出继续等待别的学生输入。脚本图片如下:





脚本文档如下:
#!/bin/sh
fun0(){
printf "$name $num\n" >/dev/null
}
fun1(){
read -p "请输入你的名字:" name
}
fun2(){
num=$[ RANDOM%100 ]
echo $name
echo $num
printf "$name $num\n" >>/root/name.txt
usleep 2000000
#clear
}
fun1
fun2
fun3(){
bb=$(grep "$name" /root/name.txt|awk '{print $1}')
if [ -z "$bb" ];then
echo "可以使用"
else
echo "名字重复" && fun0 && main
fi
}
fun4(){
mm=$(grep "$num" /root/name.txt|awk '{print $2}')
if [ -z "$mm" ];then
echo "可以使用" && printf "$name $num\n" >>/root/name.txt && main
else
echo "数字重复" && fun0 && main
fi
}
fun5(){
num=$[ RANDOM%100 ]
echo $name
echo $num
}
main(){
while true
do
fun1
fun3
fun5
fun4
done
}
main
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息