美國中餐館的最後一道菜,往往是小甜餅,叫做"幸運餅"(fortune cookie)。
裡面有一張紙條,寫著人生格言。
這種形式的格言,顯然很受歡迎。早在1979年,就有人寫了一個叫做 fortune 的小程式。在命令列下輸入fortune,就會跳出一句。
通常,Linux發行版自帶這個程式。如果沒有,需要先安裝這個程式。
# Debian/Ubuntu $ sudo apt-get install fortune # Mac $ brew install fortune
我很喜歡這個程式,但是它預設的格言庫都是英語的,我覺得這點不好,就自己動手做了一個中文格言庫。上圖就來自這個庫,安裝命令如下。
$ git clone [email protected]:ruanyf/fortunes.git $ sudo mv fortunes/data/* /usr/share/games/fortunes/
如果是Mac系統,需要重新生成索引檔案,即在上面兩個命令之間,增加幾個命令。
$ strfile fortunes/data/fortunes $ strfile fortunes/data/chinese $ strfile fortunes/data/tang300 $ strfile fortunes/data/song100
目前,這個庫帶有四個格言包。
- fortunes:英語格言,5472條
- chinese:中文格言,25919條
- tang300:唐詩三百首,313條
- song100::宋詞一百首,95條
fortune 命令顯示的格言是隨機的,但是分佈比例與格言包的容量一致。如果希望四個包平均顯示,即每個包都有25%的顯示機會,需要使用下面的命令格式。
$ fortune -e fortunes chinese tang300 song100 # 或者 $ fortune 25% fortunes 25% chinese 25% tang300 25% song100
上面程式碼的第二種形式,讓你可以根據自己的偏好,調節每個包的比重。
在 ~/.bashrc 或 ~/.zshrc 檔案(根據你使用的 shell 而定)的結尾,加上下面幾行,那麼每次啟動 shell 視窗,就會自動跳出一句格言。
echo echo "=============== Quote Of The Day ===============" echo fortune echo echo "================================================" echo
格言包就是一個文字檔案,可以放入任何內容。假如你想用它背單詞,也沒有問題。下面就是如何製作這一類的 fortune 資料檔案。
(1)所有條目都寫入一個文字檔案,檔名任意。
(2)條目之間用單獨一行的百分號(%)分隔,就像下面這樣。
路漫漫其修遠兮,吾將上下而求索。
----屈原《離騷》
%
富貴不能淫,貧賤不能移,威武不能屈。
----《孟子》
%
長風破浪會有時,直掛雲帆濟滄海。
----《行路難·其一》
%
志不強者智不達,言不信者行不果。
----墨子
%
鍥而舍之,朽木不折;鍥而不捨,金石可鏤。
----《荀子·勸學》
%
(3)生成索引檔案。
$ strfile <fortuneFile> <fortuneFile.dat>
上面命令中,尖括號的 fortune 檔名,替換成你的檔名。
(4)fortune 資料檔案和它的索引檔案,都複製到目錄 /usr/share/games/fortunes/ 。
(完)