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

関連情報