專門的術語叫作ANSI Escape sequences(ANSI Escape codes),題目並不恰當,與其說是屏幕輸出控制,不如說是經過bash在兼容VT100的終端上進行輸出。python
主要有如下類別:bash
Esc[Value;...;Valuem -- 控制輸出效果
Esc[Line;ColumnH
Esc[Line;Columnf -- 更改光標位置ui
以上控制符主要經過echo進行輸出,其中Esc不是三個字母,而是ASCII的ESC字符'\033'或者'\E',須要進行轉義。spa
由於echo分爲系統程序和bash的builtin等等,實現略有差別。有的echo須要使用-e參數,有的echo不支持'\E'轉義,須要用戶自行判別。code
此外其餘能夠向終端輸出的程序,理論上也可使用這些控制符,例如C語言的printf,python的print等等,再也不贅述。ci
Esc[Value;...;Valuemtable
Value控制各類效果,例如前景色、背景色、粗體等等,能夠在單個 Esc[Value;...;Valuem 中組合多個Value,也能夠連續使用多個 Esc[Value;...;Valuem 進行。同類別的Value,後者覆蓋前者。終端
一個例外是 Esc[0m,Value=0而且不與其餘設置相組合,此時不單單覆蓋同組的設置,還會清除以前的全部設置。Value列表以下: 程序
Value | 含義 |
關閉全部效果 | |
0 | 關閉全部效果 |
1 | 粗體 |
2 | 暗色 |
4 | 下劃線 |
5 | (閃爍)* |
7 | 反相 |
8 | 隱藏(隱藏) |
注:不少終端下閃爍無效d3
Value | 含義 | Value | 含義 |
30 | 前景色黑色 | 40 | 背景色黑色 |
31 | 前景色紅色 | 41 | 背景色紅色 |
32 | 前景色綠色 | 42 | 背景色綠色 |
33 | 前景色黃色 | 43 | 背景色黃色 |
34 | 前景色藍色 | 44 | 背景色藍色 |
35 | 前景色品紅 | 45 | 背景色品紅 |
36 | 前景色青色 | 46 | 背景色青色 |
37 | (前景色白色) | 47 | 背景色白色 |
2. 控制光標位置
Esc[Line;ColumnH
Esc[Line;Columnf
更改光標的位置,行與列均從0開始。Line或者Column留空表示0