如何在Bash Shell脚本中生成介于1到10之间的包含性随机数?
会不会是$(RANDOM 1+10)
发布于 2012-01-24 14:53:04
$(( ( RANDOM % 10 ) + 1 ))编辑.根据注释将括号改为括号。http://web.archive.org/web/20150206070451/http://islandlinux.org/howto/generate-random-numbers-bash-scripting
发布于 2014-04-15 19:53:50
最简单的解决方案是使用允许直接指定范围的工具,如gnu shuf。
shuf -i1-10 -n1如果您想使用$RANDOM,那么将0.32767中的最后8个数字抛出,并将其处理为0.32759将更加精确,因为取0.32767 mod 10将得到以下分布
0-8 each: 3277
8-9 each: 3276所以,稍微慢一点,但更精确
while :; do ran=$RANDOM; ((ran < 32760)) && echo $(((ran%10)+1)) && break; done 发布于 2012-01-24 14:53:36
要使用bash生成随机数,请使用$RANDOM内部Bash函数。请注意,不应使用$RANDOM来生成加密密钥。$RANDOM是通过使用当前进程ID (PID)和由1970年以来经过的秒数定义的当前时间/日期来生成的。
echo $RANDOM % 10 + 1 | bchttps://stackoverflow.com/questions/8988824
复制相似问题