如何在Bash中生成一个范围内的随机数?
当前回答
这里有$RANDOM。 我不知道具体是怎么回事。但它确实有效。 对于测试,您可以执行:
echo $RANDOM
其他回答
不需要其他依赖项:
$(((RANDOM % $((upperBound - lowerBound))) + lowerBound))
随机数范围为[lowerBound,upperBound)
你可以使用种子,参见文档:
RANDOM=$(date +%s%N | cut -b10-19)
echo $(( $RANDOM % 100 + 1 ))
没有模块化的纯Bash随机数
lowerRange=10 # inclusive
upperRange=20 # exclusive
randomNumber=$(( RANDOM * ( upperRange - lowerRange) / 32767 + lowerRange ))
这里有$RANDOM。 我不知道具体是怎么回事。但它确实有效。 对于测试,您可以执行:
echo $RANDOM
试试你的shell:
$ od -A n -t d -N 1 /dev/urandom
这里,-t d指定输出格式应该是带符号的十进制;-N 1表示从/dev/ urrandom读取一个字节。