首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Bash Shell脚本中生成1到10之间的随机数

在Bash Shell脚本中生成1到10之间的随机数
EN

Stack Overflow用户
提问于 2012-01-24 14:49:05
回答 6查看 403.5K关注 0票数 216

如何在Bash Shell脚本中生成介于1到10之间的包含性随机数?

会不会是$(RANDOM 1+10)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-01-24 14:53:04

代码语言:javascript
复制
$(( ( RANDOM % 10 )  + 1 ))

编辑.根据注释将括号改为括号。http://web.archive.org/web/20150206070451/http://islandlinux.org/howto/generate-random-numbers-bash-scripting

票数 372
EN

Stack Overflow用户

发布于 2014-04-15 19:53:50

最简单的解决方案是使用允许直接指定范围的工具,如gnu shuf

代码语言:javascript
复制
shuf -i1-10 -n1

如果您想使用$RANDOM,那么将0.32767中的最后8个数字抛出,并将其处理为0.32759将更加精确,因为取0.32767 mod 10将得到以下分布

代码语言:javascript
复制
0-8 each: 3277 
8-9 each: 3276

所以,稍微慢一点,但更精确

代码语言:javascript
复制
while :; do ran=$RANDOM; ((ran < 32760)) && echo $(((ran%10)+1)) && break; done 
票数 109
EN

Stack Overflow用户

发布于 2012-01-24 14:53:36

要使用bash生成随机数,请使用$RANDOM内部Bash函数。请注意,不应使用$RANDOM来生成加密密钥。$RANDOM是通过使用当前进程ID (PID)和由1970年以来经过的秒数定义的当前时间/日期来生成的。

代码语言:javascript
复制
 echo $RANDOM % 10 + 1 | bc
票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8988824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档