原理
对数n取余,余应为0---(n-1)范围。
我们想要产生0-25范围内的数:
expr $RANDOM % 26
如果想得到1--68范围内的数,可以这样:
expr $RANDOM % 68 + 1
- 前面可以得到最小为0,最大为67的随机数,再加上1,很自然的就可以得到最大为1,最小为68的数了。
如果想得到6--87范围内的数:
expr $RANDOM % 82 + 6
- 前面可以得到最小为0,最大为81的随机数,再加上6,很自然的就可以得到最大为87,最小为6的数了
生成三位数
三位数,也就是100-999,从上面的知识,我们可以得出:
expr $RANDOM % 900 + 100
前面可以得到最小为0,最大为899的随机数,再加上100,很自然的就可以得到最大为999,最小为100的数了。
for i in {1..10000}
do
num=$[$RANDOM%900+100]
echo $num
done
for循环
上面的语句可以执行。这种格式的for循环只能接受数字。
如果接受变量,则会无效。
for i in {$1..$2}
do
echo "$i"
done
为此,可以使用C语言格式的循环。
j=$1
for ((i=1; i<=j; i++))
do
echo "$i"
done
也就是
#!/bin/bash
read -p "生成多少个3位数呢?请输入:" count
echo $count
echo "结果:"
for((i=1;i<=count;i++))
do
num=$[$RANDOM%900+100]
echo $num
done
结果存入文件
#!/bin/bash
read -p "生成多少个3位数呢?请输入:" count
#echo $count
#touch num.txt
#txt=num.txt
for((i=1;i<=count;i++))
do
num=$[$RANDOM%900+100]
echo $num
echo -e "$num\t" >> txt
done
|