SFUの乱数生成

ひどいなありゃ。

#!/bin/sh
p=10000
VAL=`expr $RANDOM % $p`
echo $VAL

こんなん作ってみたんですが…

cloneko> zsh -c "repeat 10 ./rand.sh"

ってやると…

cloneko> zsh -c "repeat 10 ./rand.sh"
2818
2818
2818
2818
2818
2818
2818
2818
2818
2818

$RANDOMが動いていないのかな?って思って

cloneko> zsh -c "repeat 100 ./rand.sh" | sort | uniq -c | sort -nk 2

を実行すると…

cloneko> zsh -c "repeat 100 ./rand.sh" | sort | uniq -c | sort -nk 2
  44 2110
  29 5349
  27 8871

おいおいおいおい冗談きついなまた。
Linuxでやると

[cloneko@hoge src]$ zsh -c "repeat 100 ./rand.sh" | sort | uniq -c | wc -l
100

(あんまりにも行数が多いのでwc -lで)
SFUで乱数を扱うのはなかなかキビしいと。