如何在Bash中生成一个范围内的随机数?


当前回答

也可以从awk中获取随机数

awk 'BEGIN {
   # seed
   srand()
   for (i=1;i<=1000;i++){
     print int(1 + rand() * 100)
   }
}'

其他回答

是什么:

perl -e 'print int rand 10, "\n"; '

你可以使用种子,参见文档:

RANDOM=$(date +%s%N | cut -b10-19)
echo $(( $RANDOM % 100 + 1 ))

bash 5.1引入了一个新变量SRANDOM,它从系统的熵引擎中获取随机数据,因此它不是线性的,不能重新种子以获得相同的随机序列。这个变量可以用来代替RANDOM来生成更多的随机数。

$ echo $((1 + SRANDOM % 10))
4

这里有$RANDOM。 我不知道具体是怎么回事。但它确实有效。 对于测试,您可以执行:

echo $RANDOM

也可以从awk中获取随机数

awk 'BEGIN {
   # seed
   srand()
   for (i=1;i<=1000;i++){
     print int(1 + rand() * 100)
   }
}'