Linux Shell 008-随机数
本节关键字:Linux、Bash Shell、随机数
相关指令:$RANDOM
生成一个随机数
系统变量:RANDOM,默认会产生0~32767的随机整数
随机数生成示例
# 打印一个随机数
$ echo $RANDOM
# 查看系统上一次生成的随机数
$ set|grep RANDOM
RANDOM=28325
# 产生0~1之间的随机数
$ echo $[$RANDOM%2]
# 产生0~2之间的随机数
$ echo $[$RANDOM%3]
# 产生0~3之间的随机数
$ echo $[$RANDOM%4]
# 产生0~9内的随机数
$ echo $[$RANDOM%10]
# 产生0~100内的随机数
$ echo $[$RANDOM%101]
# 产生50-100之内的随机数
$ echo $[$RANDOM%51+50]
# 产生三位数的随机数
$ echo $[$RANDOM%900+100]
随机数应用案例
随机数案例1:
题目:产生一个phonenum.txt文件,随机产生以139开头的手机号1000个,每个一行。
#!/bin/bash
count=0
while true
do
n1=$[$RANDOM%10]
n2=$[$RANDOM%10]
n3=$[$RANDOM%10]
n4=$[$RANDOM%10]
n5=$[$RANDOM%10]
n6=$[$RANDOM%10]
n7=$[$RANDOM%10]
n8=$[$RANDOM%10]
echo "139$n1$n2$n3$n4$n5$n6$n7$n8" |tee -a phonenum.txt && let count++
if [ $count -eq 1000 ];then
break
fi
done
随机数案例2
题目:随机产生以139开头的手机号1000个,在这1000个手机号里抽奖5个幸运观众,显示出这5个幸运观众,但只显示头3个数和尾号的4个数,中间的都用*代替
#!/bin/bash
# choujiang
phone=phonenum.txt
for ((i=1;i<=5;i++))
do
num=`wc -l phonenum.txt |cut -d' ' -f1`
line=`echo $[$RANDOM%$num+1]`
luck=`head -$line $phone |tail -1`
sed -i "/$luck/d" $phone
echo "幸运观众是:139****${luck:7:4}"
done