たとえば,データベース間のテーブルのコピー機能をテストする場合,中身はどうでもいいが,あとでデータを比較して検証したいというケースがある。こういうときに,その「何でもいい」中身も,いつも同じでは芸がない。ある程度バラけたデータを使いたい。つまりは,ランダムな数字,ランダムな文字列を作りたい。
作るとなると,シェルスクリプトなどで簡単なスクリプトを書いて,大量にデータ生成できるといいが,shellでこういうことをするにはどうするか?
ということで,調べてみた。
1. ランダムな整数(nより小さい)の生成
$RANDOMは参照の度に乱数を発生する。これを利用すればよい。
どんな整数でもいいなら,そのまま
$RANDOM
echo $RANDOM
などを使えばよく,nより小さいという範囲限定がしたいなら,
expr `echo $RANDOM % n`
とやる。
例:0-99の整数) expr `echo $RANDOM % 100`
参照:
http://yoosee.net/d/archives/2006/11/17/002.html
2. ランダムな文字(n文字)の生成
$ mkpasswd -l n
要するに,ランダムな文字列を作ってパスワードとして使ってくださいというコマンドである。厳密にランダムかというのは定かでないが,使う目的からして,厳密である必要もない。
このコマンドはexpectというパッケージに含まれるため,ない場合は(Fedoraなど,yumでインストールできる場合)
# yum install expect
で入手する。
参照:
http://jp.layer8.sh/reference/entry/show/id/790