如何在Bash中生成一个范围内的随机数?
当前回答
如果您使用的是linux系统,您可以从/dev/random或/dev/ urrandom中获取一个随机数。注意,如果没有足够的随机数可用,/dev/random将阻塞。如果你需要速度超过随机性,请使用/dev/ urrandom。
这些“文件”将由操作系统生成的随机数填充。如果你得到的是真随机数还是伪随机数,这取决于系统上/dev/random的实现。真正的随机数是在从鼠标、硬盘、网络等设备驱动程序收集噪声的帮助下生成的。
您可以使用dd从文件中获取随机数
其他回答
也可以从awk中获取随机数
awk 'BEGIN {
# seed
srand()
for (i=1;i<=1000;i++){
print int(1 + rand() * 100)
}
}'
试试你的shell:
$ od -A n -t d -N 1 /dev/urandom
这里,-t d指定输出格式应该是带符号的十进制;-N 1表示从/dev/ urrandom读取一个字节。
0到9之间的随机数。
echo $((RANDOM%10))
如果您使用的是linux系统,您可以从/dev/random或/dev/ urrandom中获取一个随机数。注意,如果没有足够的随机数可用,/dev/random将阻塞。如果你需要速度超过随机性,请使用/dev/ urrandom。
这些“文件”将由操作系统生成的随机数填充。如果你得到的是真随机数还是伪随机数,这取决于系统上/dev/random的实现。真正的随机数是在从鼠标、硬盘、网络等设备驱动程序收集噪声的帮助下生成的。
您可以使用dd从文件中获取随机数
是什么:
perl -e 'print int rand 10, "\n"; '