bash 中 $RANDOM 范围的问题

bash 中 $RANDOM 范围的问题

为什么下面的代码应该显示 2-3 范围内的随机数,但实际上就像范围是 2-4 一样?

echo $((RANDOM%3+2))

答案1

如果您想要一种可靠的方法,请尝试这样做:

intrandfromrange() { echo "$(( ( RANDOM % ($2 - $1 +1 ) ) + $1 ))"; }
intrandfromrange 2 4

答案2

回答你的问题:

  • RANDOM%3有 3 个可能的值:

0、1 和 2

+2 那么:

2、3 和 4

相关内容