おみくじや格言などをランダムに表示する
fortune-modというパッケージをインストールして、fortuneというコマンドを実行させると、英語で格言のようなもの(実際には格言以外もありそう)がランダムに表示される。
コマンド名からすると、おみくじをするという使い方がふさわしいような感じもするのだが、ランダム格言として使われるのが一般的のようだ。manページを見ても、「格言を無作為に表示」と書いてある。
(2015/1/12)manページなどのリンク先を修正
英語の状態で動作実験
[引用]ランダムに実行した結果より$ fortune Absence makes the heart grow fonder -- of somebody else. $ fortune Universe, n.: The problem. $ fortune Fifteen men on a dead man's chest, Yo-ho-ho and a bottle of rum! Drink and the devil had done for the rest, Yo-ho-ho and a bottle of rum! -- Stevenson, "Treasure Island"
3回ほど試してみたのだが、英語力が足りないのか、いまひとつ意味が分からない...
日本語の格言データ
worris' works - fortune - 日本語データから、「星が見える名言集」という名言集がダウンロードできる(他のファイルもあるので、試してみるのもよい)。ファイルを展開すると、meigenというテキストファイルとmeigen.datという「ランダムアクセスファイル」が得られる。
これらはEUC-JPのエンコーディングのため、UTF-8環境においては、meigenをUTF-8エンコーディングに変換後、strfileで.datファイルを作成し、
$ mv meigen meigen.eucjp $ iconv -f eucjp -t utf8 meigen.eucjp > meigen $ strfile meigen "meigen.dat" created There were 768 strings Longest string: 2764 bytes Shortest string: 1 byte
これら(meigenとmeigen.dat)のあるディレクトリで下のように実行すると、このファイルが使用される。
[引用]「星が見える名言集」日本語データより
$ fortune meigen 教育とは、学校で習ったすべてのことを忘れてしまった後に、自分の中に残るものをいう。 そして、その力を社会が直面する諸問題の解決に役立たせるべく、 自ら考え行動できる人間をつくること、それが教育の目的といえよう。 --アルバート・アインシュタイン $ fortune meigen 悪いことを考えながらよい結果を得ることはできません。 それはちょうど良いことを考えて悪いことができないのと同様です。 --マーフィー $ fortune meigen 教師の側から知識を授けるよりも、 まず知識をもとめる動機を子どもたちがもつような学校が、真の学校である。 --デューイ $ fortune meigen もし君が人に愛されようと思うなら、まず君が人を愛せよ。 --セネカ
やはり、日本語だと、書いてあることが伝わりやすい。ただ、中には、意味の分かりにくいものや、説教臭いもの、押し付けのようなものなどもあり、[ホームディレクトリ]/.bashrcのような、シェル初期化スクリプトに書いたりするのには抵抗がある。やり方としては、[ホームディレクトリ]/fortune/というディレクトリを作成し、その中にmeigenとmeigen.datの両方を入れ、
$ mkdir ~/fortune $ mv meigen meigen.dat ~/fortune/
シェルの初期化スクリプトの最後に以下を書くような形となる。
ファイル名: ~/.bashrc など
fortune ~/fortune/meigen
ダウンロードしたファイルは、/usr/share/fortune/*1など(ディストリによって異なり、/usr/share/games/fortunes/の場合もある)にコピーすることで、既存のファイルに追加することもできそうだが、パッケージ管理システムの管轄内なので、あまり推奨はできない。
テキストファイルの書式と例
項目の区切りに「%」のみの行を書くだけ。日本語を含む場合はエンコーディングに注意。[任意]ファイル名: omikuji
大凶 % 凶 % 末吉 % 吉 % 小吉 % 中吉 % 大吉
これをstrfileにかけてfortuneコマンドを実行すると、簡易おみくじができる。
*1:これはGentoo Linuxの場合の場所