2018/02/20

February 20 2018 Tuesday

Weather : overcast
1、需求:

  1. 执行脚本后,提示输入名字(英文的,可以是大小写字母、数字 不能有其他特殊字符),然后输出一个随机的0-99之间的数字,脚本并不会退出,继续提示让输入名字
  2. 如果输入相同的名字,输出的数字还是第一次输入该名字时输出的结果。
  3. 前面已经输出过的数字,下次不能再出现。
  4. 当输入q或者Q时,脚本会退出。
[root@Dasoncheng sbin]# cat f.sh 
#!/bin/bash
file=/usr/local/sbin/test.txt
while : ;
do
  read -p 'Please input a name without special parameter:' n
  if [ $n == q ] || [ $n == Q ];
  then
      exit
  fi
  n1=`echo -n "$n" |sed s/[0-9a-zA-Z]//g |wc -c`
  if [ $n1 -eq 0 ];
  then
      n2=`grep -w "$n" $file`
      n3=`echo -n $n2 |wc -c`
      if [ $n3 -eq 0 ];
      then
          while :;
          do
            m=`echo "$[$RANDOM%100]"`
            if `grep -w "$m" $file` ;
            then
                continue
            else
                break
            fi
          done
          echo $m
          echo "$n:$m" >> $file
      else
          echo "`echo $n2 |awk -F ':' '{print $2}'`"
      fi
  else
      continue
  fi
done

参考答案:

这里输入代码

猜你喜欢

转载自my.oschina.net/u/3651233/blog/1622461