在Bash Shell脚本中如何生成随机数

时间:2019-11-20 08:53:03  来源:igfitidea点击:

问题

在Linux脚本中,如何生成随机数?
bash shell中,如何创建随机数?

解决方案

bash shell提供了$RANDOM变量(它也与ksh一起使用)。

每次引用$RANDOM变量时,都会生成0到32767之间的随机整数。可以通过为RANDOM分配一个值来初始化随机数序列。
如果未设置RANDOM,则即使随后将其重置,它也会丢失其特殊属性。

查看$RANDOM值:

$ echo $RANDOM

输出示例:

13789

生成5个随机数:

for i in {1..5}; do echo $RANDOM; done

输出示例:

21340
38551
89213
13577
43867

您可以将随机数存储到变量,如下所示:

#!/bin/bash
n=$RANDOM
echo "My move: trying $n..."

获取某个范围内的随机数:

n=$RANDOM
# 小于等于 200 的整数
echo $(( r %= 200 ))
# 100到200之间的整数
echo $((RANDOM%200+100))

使用/dev/urandom或/dev/random生成随机数

字符特殊文件/dev/random和/dev/urandom提供了内核随机数生成器的接口。

您可以按以下方式使用/dev/urandom:

$ od -vAn -N4 -tu4 < /dev/urandom

输出示例:

1473028321

您也可以使用/dev/random,如下所示:

$ od -An -N2 -i /dev/random

输出示例:

22378