PROGRAM SHELL

bash実践シェルスクリプト【乱数生成】

 

ランダムで0~99の整数を生成するシェルスクリプトです。
ランダム値のタネとして、乱数ジェネレーターの/dev/urandomを使います。
3行目がこのシェルスクリプトのキモになります。
cat /dev/urandom は、ランダムの文字記号数字を出力します。
tr -dc [:digit:] は、ランダムで出力した文字記号数字から数字のみを取り出します。
fold -w2 は、取り出した数字列を1行につき2カラム(文字)ずつに分割します。
head -1 は、出力された行のうち、最初の1行のみ表示します。
4行目は、1で割ることにより、08のように先頭に0(ゼロ)がつく値の場合に、先頭の0を削除します

メモ

同じようにランダム値を生成する/dev/randomもありますが、/dev/urandomの方が処理が速いため、/dev/urandomを使います。

 実行例
$ ./random1.sh
27

上記のサンプルプログラムは、0~99までの乱数を出力するシェルスクリプトですが、1~16までの乱数を出力する場合は、以下のようになります。

 実行例
$ ./random2.sh
3

 

-PROGRAM, SHELL