【レビュー】
![]() |
The main aim is to document the hurdles that most of us face as UNIX/Linux/BSD sys admin in our day today life. |
シェルまたはシェルスクリプトで乱数を使いたいと思うことが時々ある。コマンドをまとめていくという軽い利用を越えて、プログラミング的な要素が強くなってくる場合にはそうした要求がでてくる。しかしシェルスクリプトは一般的なプログラミング言語ではないため、乱数を生成するような関数は提供されていない。
シェルやシェルスクリプトで乱数を使う方法はいくつかあるが、Bash Shell Generate Random Numbers - nixCraftにおいて紹介されている2つの方法が、ひとつは簡単な方法、もうひとつはシェルに左右されにくい互換性の高い方法として興味深い。紹介されているテクニックは次の2つ。
bashおよびzshにはRANDOMというシェル変数が用意されている。使うごとに違う数字が格納される変数。bashまたはzshを使っている場合にはもっとも手軽に乱数を使える方法といえる。bashのマニュアルには0から32767までの整数がランダムに格納されると説明がある。通常は剰余演算で丸め込んで利用する。$RANDOMは便利な方法だが、bashではない/bin/shでは利用できない。
# echo $RANDOM
23631
# echo $RANDOM
22179
# echo $(( $RANDOM % 5 ))
3
# echo $(( $RANDOM % 5 ))
1
# echo $(( $RANDOM % 5 ))
2
#
OSに用意されている乱数疑似デバイスファイルを使うと、シェルの種類に関係なく乱数を利用できる。Bash Shell Generate Random Numbersには次のようにod(1)コマンドを使って乱数疑似デバイスファイルからデータを読み込み乱数として使う方法が紹介されている。
# od -vAn -N4 -tu4 < /dev/random
880201283
# od -vAn -N4 -tu4 < /dev/random
1108052704
# od -vAn -N4 -tu4 < /dev/urandom
272583946
# od -vAn -N4 -tu4 < /dev/urandom
4284800734
# echo $(( $(od -vAn -N4 -tu4 < /dev/random) % 5 ))
3
# echo $(( $(od -vAn -N4 -tu4 < /dev/random) % 5 ))
4
#
od(1)コマンドで読み込む場合、-N4の指定が読み込むデータのバイト数になっているため、ここの数値を調整することでもっと小さい乱数を得ることも可能。-N3、-N2、-N1などが使用できる。この場合、出力が-tu4と指定されているため、-Nの指定を4以上にしても出力される数の桁はそれ以上は増えない。
| 高速WebサーバNginxセキュリティ設定20 [2010/3/9] |
| grep(1)コマンドの使い方 [2010/2/16] |
| パスワードプロテクトPDFをパスワードなしにする4つの方法 [2010/1/18] |
| WindowsでデータをPDFに変換するための5つの無償ツール [2009/12/25] |
| Acrobatを使わずにPDFファイルを編集する方法 [2009/11/5] |
| Word、Excel、PowerPointファイルをまとめてPDFに変換する方法 [2009/10/29] |
| 理研、脳・脊髄形成に必要な神経板湾曲の仕組みを解明 [20:16 5/25] |
| 京大、「慢性閉塞性肺疾患」患者の労作時呼吸困難は鍼治療が有効と実証 [20:08 5/25] |
| 120Hz SHVカメラ用イメージセンサーを使った撮像装置 - SHVフルスペック化へ [18:10 5/25] |
| 京大、視覚による物体認知は前頭前野からのトップダウン信号が重要と確認 [17:45 5/25] |
| 製品数の拡大だけでなくBCPの展開なども含めた総合力で事業の強化を図るTI [17:25 5/25] |
|
[ゲーム質問状]「ドラゴンズドグマ」 ゲームブックのドキドキ感を今の技術で [13:30 5/27] ホビー |
|
「デビルサバイバー」&「氷結鏡界」シリウスでマンガ化 [13:15 5/27] ホビー |
|
[SKE48]松井玲奈、17人ランクインで手応え「飛躍できている」 [13:12 5/27] ホビー |
|
【レポート】【2010年非オタ編】成功したと思う歴代深夜アニメランキング [13:00 5/27] ホビー |
|
[東京スカイツリータウン]1/2000の模型が登場 スカイツリーやオフィス、駅など精巧に再現 [12:00 5/27] ホビー |
4つの診断で、自分の適性を見つめなおそう!
働くこと・挑戦し続けることへの思いを綴ったインタビュー
あなたにピッタリのアドバイスを読むことができます。
転職に必要な情報が収集できます
企業からアプローチのメッセージが届きます。