February 20 2018 Tuesday
Weather : overcast
1、需求:
- 执行脚本后,提示输入名字(英文的,可以是大小写字母、数字 不能有其他特殊字符),然后输出一个随机的0-99之间的数字,脚本并不会退出,继续提示让输入名字
- 如果输入相同的名字,输出的数字还是第一次输入该名字时输出的结果。
- 前面已经输出过的数字,下次不能再出现。
- 当输入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
参考答案:
这里输入代码