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 )的主要内容,如果未能解决你的问题,请参考以下文章