Linux 下的終端機畫面不是只能換換背景而已,顯示出來的顏色也是能控制的。使用的顏色就像以前的DOS 時代,或者現在的BBS 顏色控制方式一樣。
以shell 的顯示為例,顯示的格式如下:
\33[ 文字樣式 ; 文字顏色 ; 背景顏色 m
文字內容………………
\33[0m
文字樣式有列下幾種色碼可以使用:
- 0 一般亮度
- 1 高度度
- 4 加底線
- 5 灰底
文字顏色則都是3開頭,有下列色碼:
- 30 黑色
- 31 紅色
- 32 綠色
- 33 黃色
- 34 藍色
- 35 紫色
- 36 青綠
- 37 白色
再來是背景顏色色碼,都是4開頭:
- 40 黑色
- 41 紅色
- 42 綠色
- 43 黃色
- 44 藍色
- 45 紫色
- 46 青綠
- 47 白色
如果我要在畫面上顯示高亮度的綠色(32)及黑色背景,可以如下:
sprintf "\33[1;32;40m 我的文字 \33[0m"
也可以分開來寫比較清楚
sprintf "\33[1;32;40m " sprintf "我的文字" sprintf "\33[0m"
記得shell 輸出碼要用 printf 而不是用一般的 echo。echo 的話要寫成 echo -e 。
但並不是所有的終端機畫面都是用黑色背景的。如果我們不要指定它的黑色背景,讓它使用系統原始背景色,可以省略背景描述變成如下:
sprintf "\033[1;32m" sprintf "我的文字" sprintf "\033[0m"
是不是就比較完美了呢。
其實這些控制碼和BBS 的還真像。