這裡介紹如何使用 FIGlet 產生以純文字 ASCII 字元畫出來的大型文字。
FIGlet 是一個可以產生各種 ASCII Art 大型字體的工具,可用來製作文字介面程式用的 banner,支援的字型非常豐富,對於終端機的程式來說很實用。
若在 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 的字型是可以選擇的,我們可以使用 figlist
這個指令列出 FIGlet 內建的所有字型:
figlist
Default 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邦幫忙