筆者について
FreeBSDを通じてOSSにささかな貢献を。
- 日本xrdpユーザ会発起人
- xrdp developer
- FreeBSD developer
OSS活動をご支援いただける方を募集しています
2007-12-27 シェルスクリプトでいろいろ
■ ディレクトリ内の画像をランダムに表示する CGI
Linux カテゴリなんだか、UNIX カテゴリなんだかよくわからなくなってきた。 いつもなら Ruby でちゃっちゃと書く所だけど、この程度ならシェルスクリプトで書いたほうが早いがするので書いてみた。
#!/bin/bash RANDOM=`date +%s` FILES=(`ls | grep jpg`) N=${#FILES[@]} echo "Cache-Control: no-cache" echo "Content-Type: image/jpeg" echo "" cat ${FILES[`expr $RANDOM % $N`]}
こののスクリプトを適当な名前で保存して実行権つけてやればスクリプトと同じディレクトリ内のファイルがランダムに出力される。 適当に作ったのでファイル名に jpg が含まれているか見てるだけで、拡張子は見てない。
シェルスクリプトで書いたほうが早かったけど、それが速いかどうかは…。これだけで 5個くらいプロセス起動するので、リクエストが多いと重いかもしれない。
bash で乱数を取得するにはシェル変数 RANDOM を使えばいいみたい。
- 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