bash で乱数を使う

bash には乱数を取得できる変数?が 用意されています。

$ echo $RANDOM
2036

繰り返し呼ぶと違う値が返ります。

$ echo $RANDOM
2036

$ echo $RANDOM
17653

man には次のようにあります。

RANDOM
  Each  time  this  parameter  is  referenced,  a  random  integer between 0 and 32767 is generated.
  The sequence of random numbers may be initialized by assigning a value to RANDOM.
  If RANDOM is  unset, it loses its special properties, even if it is subsequently reset.

範囲は 0 〜 32767 のようです。

範囲を指定したい場合は、 % で余りを求めます。

$ echo $(($RANDOM % 10))
7

printf で 0詰めにもできます。

$ VAL=`printf "%05d" $RANDOM`
$ echo $VAL
02036

RANDOM に値を設定すると、乱数の種を決めることができます。

$ RANDOM=3
$ echo $RANDOM
17653
$ echo $RANDOM
12499

$ RANDOM=3
$ echo $RANDOM
17653
$ echo $RANDOM
12499

同じ種を指定すると、同じ値が返ってきます。

Google サイト内検索

Amazonアソシエイト