如何在bash中获得0到999999999之间的随机(/ dev / random)数字?
发布时间:2020-12-16 01:48:05 所属栏目:安全 来源:网络整理
导读:例如, echo "$(( ($(od -An -N2 -i /dev/random) )%(1000-0+1) ))" 可以使用.但它不适用于更大的数字. 如何在bash中获得0到999999999之间的随机(/ dev / random)数字? 解决方法 我用的是: shuf -i0-999999999 -n1 虽然不能保证shuf使用/ dev / random.使用
例如,
echo "$(( ($(od -An -N2 -i /dev/random) )%(1000-0+1) ))" 可以使用.但它不适用于更大的数字. 如何在bash中获得0到999999999之间的随机(/ dev / random)数字? 解决方法
我用的是:
shuf -i0-999999999 -n1 虽然不能保证shuf使用/ dev / random.使用GNU shuf,如果你真的想要,你可以指定–random-source = / dev / random. IIRC,FreeBSD(可能还有Mac OS X)调用这个实用程序shuffle,它需要稍微不同的参数(shuffle -n1000000000 -p1). 如果你真的想直接使用/ dev / random,你可以使用od -An -N4 -tu4生成一个四字节数字,但要记住使用?00000000会产生偏差,因为232不能被1000000000整除.要纠正这种情况,在生成0-999999999范围内随机数的特定情况下,如果大于或等于4000000000,则需要拒绝四字节随机数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |