如何在Bash Shell脚本中生成1到10之间的包含性随机数?
会不会是$(RANDOM 1+10)
?
发布于 2018-03-02 09:59:08
$(( ( RANDOM % 10 ) + 1 ))
发布于 2018-03-02 11:45:43
最简单的解决方案是使用允许直接指定范围的工具,例如GNUshuf
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
https://stackoverflow.com/questions/-100003555
复制相似问题