這裡介紹如何使用 FIGlet 產生以純文字 ASCII 字元畫出來的大型文字。
FIGlet 是一個可以產生各種 ASCII Art 大型字體的工具,可用來製作文字介面程式用的 banner,支援的字型非常豐富,對於終端機的程式來說很實用。
安裝 FIGlet
若在 Debian 或 Ubuntu Linux 中,可以使用 apt 安裝 FIGlet 這個工具:sudo apt-get install figlet
若是 CentOS Linux,則在啟用 EPEL 之後,使用 yum 安裝:sudo yum install epel-release
sudo yum install figlet
基本用法
直接執行 figlet 指令,並指定文字的內容即可產生大型文字:figlet "G. T. Wang"____ _____ __ __
/ ___| |_ _| / /_ _ _ __ __ _
| | _ | | / / / _` | '_ / _` |
| |_| |_ | |_ V V / (_| | | | | (_| |
____(_) |_(_) _/_/ __,_|_| |_|__, |
|___/
figlet 也可以像一般的 Linux 指令一樣,從標準輸入取得文字內容:LANG=C date | figlet__ __ __ __ _ ___
| / | ___ _ __ | / | __ _ _ __ / |/ _
| |/| |/ _ | '_ | |/| |/ _` | '__| | | (_) |
| | | | (_) | | | | | | | | (_| | | | |__, |
|_| |_|___/|_| |_| |_| |_|__,_|_| |_| /_/
_ __ _________ _ ____ ____ ____ _____ ____ ___ _ ___
/ |/ /_ _|___ / ___|_/ | ___| / ___/ ___|_ _| |___ / _ / |( _ )
| | '_ (_) |_ ___ (_) |___ | | ___ | | __) | | | | |/ _
| | (_) | ___) |__) || |___) | | |___ ___) || | / __/| |_| | | (_) |
|_|___(_)____/____(_)_|____/ ____|____/ |_| |_____|___/|_|___/
若執行 figlet 指令,不加任何參數的話,會進入互動式的環境,使用者每輸入一行文字,就會輸出轉換的結果:figlet
figlet 互動式操作環境
選擇字型
FIGlet 的字型是可以選擇的,我們可以使用 figlist 這個指令列出 FIGlet 內建的所有字型:figlistDefault font: standard
Font directory: /usr/share/figlet
Figlet fonts in this directory:
banner
big
block
bubble
digital
ivrit
lean
[略]
從 figlist 指令的輸出中,我們可以看出 FIGlet 預設的字型目錄是 /usr/share/figlet(所以也可以直接到這個目錄下查看可用的字型),而預設的字型則為 standard。
若要指定字型,可以使用 -f 參數,例如使用 banner 這個字型:figlet -f banner "G. T. Wang"##### ####### # #
# # # # # # ## # # ####
# # # # # # # ## # # #
# #### # # # # # # # # # #
# # ### # ### # # # ###### # # # # ###
# # ### # ### # # # # # # ## # #
##### ### # ### ## ## # # # # ####
下載字型檔
除了系統上預設安裝好的字型之外,在 FIGlet 的官方網站上也有非常多的字型可以下載使用,建議可以從它的範例網頁中挑選喜歡的字型,然後再下載對應的字型檔。
假設我們想要使用 isometric1,就先下載該字型檔:wget http://www.figlet.org/fonts/isometric1.flf
接著在含有這個字型檔的目錄,執行 figlet 並以 -f 參數指定字型名稱:figlet -f isometric1 "GTW"___ ___ ___
/ / /__
/:: : /:/ _/_
/:/: : /:/ /__
/:/ : /:: /:/ /:/ _/_
/:/__/_:__ /:/:__ /:/_/:/ /__
: / /__/ /:/ /__/ :/:/ /:/ /
: :__ /:/ / ::/_/:/ /
:/:/ / /__/ :/:/ /
::/ / ::/ /
/__/ /__/
細部調整選項
FIGlet 預設會讓每個字母黏在一起,如果想要讓每個字母分開,看得更清楚的話,可以加上 -k 參數:figlet -k "G. T. Wang"____ _____ __ __
/ ___| |_ _| / /__ _ _ __ __ _
| | _ | | / / // _` || '_ / _` |
| |_| | _ | | _ V V /| (_| || | | || (_| |
____|(_) |_|(_) _/_/ __,_||_| |_| __, |
|___/
如果在終端機螢幕上,想要讓輸出的文字置中,可以加上 -c 參數:figlet -c "G. T. Wang"
置中對齊
終端機的畫面寬度會直接影響到 FIGlet 的排版,FIGlet 預設的終端機的寬度為 80,如果您所使用的終端機寬度不是 80 的話,可以加上 -t 參數讓 FIGlet 自動偵測終端機的寬度,或是使用 -w 新寬度 的方式指定新的寬度。
以下是一些有趣的指令,其將 figlet 所產生的文字,送給 tr 進行取代,產生出不同的效果:figlet -f lean | tr '_/' '()'
figlet -f lean | tr '_/' './'
figlet -f lean | tr '_/' '//'
figlet -f lean | tr '_/' '/'
參考資料:iT邦幫忙