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]」评论列表

发表评论