首页 > 系统服务 > 详细

那些年我们一起做过的shell面试题(三)

时间:2016-01-11 01:37:06      阅读:236      评论:0      收藏:0      [点我收藏+]

企业真实shell面试题,一起来挑战把!

声明:如有雷同,纯属抄袭

 

1、好消息,老男孩培训学生外出企业项目实践机会(第6次)来了(本月中旬),但是,名额有限,队员限3人(班长带队)。

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

要求:

1)、执行脚本后,想去的同学输入英文名字全拼,产生随机数01-99之间的数字,数字越大就去参加项目实践,前面已经抓到的数字,下次不能在出现相同数字。

2)、第一个输入名字后,屏幕输出信息,并将名字和数字记录到文件里,程序不能退出继续等待别的学生输入。

[root@xiaoya scripts]# cat urandom.sh
##########################################
#!/bin/sh
#author tom
#time 2016-1-10
#function select the students to study
#version 4.1.2
##########################################

#no.1
while true
do
read -p "Pls input your english name :" name
if [ ${#name} -eq 0 ]
then
  echo "Error :Pls input your name"
continue
else
    NUM=$(echo $RANDOM|cut -b 1-2)
    NUM1=$(awk -F " " ‘{print $2}‘ ~/random.txt|grep $NUM)
  if [ -z $NUM1 ]
  then
    echo $name $NUM
    echo "$name $NUM" >>~/random.txt
  else
    echo "Error: $NUM is already in use, Pls input your name once again"
  fi
fi
done

 

2、已知下面的字符串是通过RANDOM随机数变量md5sum|cut-c 1-8截取后的结果,请破解这些字符串对应的md5sum前的RANDOM对应数字?

30290   02690686

18945   1ea71781

24489   9267686d

14894   06a42db1

[root@xiaoya scripts]# cat pojie_urandom.sh
#####################################
#!/bin/sh
#author tom
#time 2016-1-11
#####################################

array=(
02690686
1ea71781
9267686d
06a42db1
)

for n in {0..32767}
do
  SUM=$(echo $n|md5sum|cut -c 1-8)
  for i in ${array[*]}
  do
    if [ $SUM == $i ]
    then
      echo "$n is $SUM"
     fi
  done
done

本文出自 “IT--小哥” 博客,请务必保留此出处http://402753795.blog.51cto.com/10788998/1733579

那些年我们一起做过的shell面试题(三)

原文:http://402753795.blog.51cto.com/10788998/1733579

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!