Shell进阶脚本-生成随机数( $RANDOM )

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell进阶脚本-生成随机数( $RANDOM )相关的知识,希望对你有一定的参考价值。

参考技术A

$RANDOM 是 Bash 中用来生成 0 至 32767 之间随机整数的一个内置 函数(而非常量)
不应 被用于生成密钥
样例-1. 生成随机数

样例-2. 从牌组中随机选牌

样咧-3. 模拟布朗运动

Jipe 提供了一些生成指定范围内随机数的方法

Bill Gradwohl 提出了一种改良后的仅适用于正数的公式

Bill 在这还给出了一个生成指定范围内随机数的通用函数

样例-4. 指定范围随机数

那么 $RANDOM 到底有多随机?最好的测试方法就是写一个脚本跟踪由 $RANDOM 生成的随机数的分布
接下来让我们多投几次由 $RANDOM 做的骰子

样例-5. 用 RANDOM 投骰子

从上一个样例中我们可以发现,在每次调用 RANDOM 生成器时,最好利用重置生成器种子
在 RANDOM 生成器中使用相同的种子会生成相同序列的随机数。(与 C 语言中的 random() 函数的行为一致)

样例-6. 重置 RANDOM 种子

伪设备文件 /dev/urandom 提供了比 $RANDOM 变量更随机化的伪随机数。命令 dd if=/dev/urandom of=targetfile bs=1 count=XXX 将会创建一个包含均匀分布的伪随机数的文件。但是想要在脚本中将这些随机数赋值给变量需要做一些变通,比如使用命令 od 或者使用管道导入命令 md5sum

当然也有其他在脚本中生成伪随机数的方法
比如: Awk 命令就提供了这样一种非常简易的方法

样例-7. 使用 awk 命令生成伪随机数

同样,命令 date 可以用于 生成整型随机数序列

以上是关于Shell进阶脚本-生成随机数( $RANDOM )的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本打印0-9的随机数

shell脚本简单例子

Linux - shell - RANDOM

shell 脚本 随机抽取班上学生

shell生成随机数的几种方法

随机数shell脚本问题