shell变量之辨[12]

[随机数]

#!/bin/bash
loop=10
for ((i=0;i<$loop;i++))
do
        echo $RANDOM
done

在shell中产生随机数其实是很简单的, 因为$RANDOM这个看起来是个变量的玩意儿就能方便地返回随机数.

我们运行上面的一个程序, 可以看到也许有类似这样的结果:

17946
8239
4510
4797
10094
30336
19126
26416
18066
17440

实际上, 这样的方式产生的随机数范围是:  0-32767(有符号的16bit整数)

然而在我们平时, 经常需要产生一个范围内的数字, 比如说, 想要产生6~20之间的整数, 那么我们就可以用这样一段代码:

#!/bin/bash
min=6
max=20
((range=$max-$min+1))
echo "range: $range"
loop=10
for ((i=0;i<$loop;i++))
do
        echo $((RANDOM%$range+$min))
done

这个min和max就代表了随机数的数字范围, 也许我们执行的结果是:

range: 15
6
13
6
10
13
17
10
20
15
10

恰好6和20都有出现, 其他数字也都是落在这个范围内的~

本文链接:https://www.poisonbian.com/post/1053.html 转载需授权!

分享到:
原文链接:,转发请注明来源!
「shell变量之辨[12]」评论列表

发表评论