終端的字符顏色是用轉義序列控制的,是文本模式下的系統顯示功能,和具體的語言無關,shell,python,perl, C,C++等均可以調用。
轉義序列是以 ESC 開頭,可以用 \033 完成相同的工作(ESC 的 ASCII 碼用十進制表示就是 27, 等價于用八進制表示的 33)。
- 1.顯示格式: \033[顯示方式;前景色;背景色;動作m;
- 2.其中顯示方式,前景色或背景色無順序關系,其中任何一項也不是必須的;
-
3.系統默認顏色:\033[0m;
Example:
echo -e "\033[44;37;5m ME \033[0m COOL"
以上命令設置背景成為藍色,前景白色,閃爍光標,輸出字符“ME”,然后重新設置屏幕到缺省設置,輸出字符“COOL”。“e”是命令 echo的一個可選項,它用于激活特殊字符的解析器。“\033”引導非常規字符序列。“m”意味著設置屬性然后結束非常規字符序列,這個例子里真正有效的字符是“44;37;5” 和“0”。
修改“44;37;5”可以生成不同顏色的組合,數值和編碼的前后順序沒有關系。可以選擇的編碼如下所示:
編碼 顏色/動作
0 重新設置屬性到缺省設置
1 設置粗體
2 設置一半亮度(模擬彩色顯示器的顏色)
4 設置下劃線(模擬彩色顯示器的顏色)
5 設置閃爍
7 設置反向圖象
22 設置一般密度
24 關閉下劃線
25 關閉閃爍
27 關閉反向圖象
30 設置黑色前景
31 設置紅色前景
32 設置綠色前景
33 設置棕色前景
34 設置藍色前景
35 設置紫色前景
36 設置青色前景
37 設置白色前景
38 在缺省的前景顏色上設置下劃線
39 在缺省的前景顏色上關閉下劃線
40 設置黑色背景
41 設置紅色背景
42 設置綠色背景
43 設置棕色背景
44 設置藍色背景
45 設置紫色背景
46 設置青色背景
47 設置白色背景
49 設置缺省黑色背景
其他示例:
\033[2J 清除屏幕
\033[0q 關閉所有的鍵盤指示燈
\033[1q 設置“滾動鎖定”指示燈 (Scroll Lock)
\033[2q 設置“數值鎖定”指示燈 (Num Lock)
\033[3q 設置“大寫鎖定”指示燈 (Caps Lock)
\033[15:40H 把關閉移動到第15行,40列
\007 發蜂鳴生beep