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

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

Stack Overflow用户
提问于 2018-03-02 01:53:16
回答 2查看 0关注 0票数 0

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

会不会是$(RANDOM 1+10)?

EN

回答 2

Stack Overflow用户

发布于 2018-03-02 09:59:08

代码语言:txt
复制
$(( ( RANDOM % 10 )  + 1 ))
票数 0
EN

Stack Overflow用户

发布于 2018-03-02 11:45:43

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

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

如果你想用$RANDOM,将0...32767中的最后8个数字抛出,并将其处理为0...32759,因为取0...32767 mod 10,您将得到以下分布

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

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

代码语言:txt
复制
while :; do ran=$RANDOM; ((ran < 32760)) && echo $(((ran%10)+1)) && break; done 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003555

复制
相关文章

相似问题

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