2018/02/20

February 20 2018 Tuesday

Weather : overcast
一、需求:bash

  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

參考答案:

這裏輸入代碼
本站公眾號
   歡迎關注本站公眾號,獲取更多信息