[Linux]屏幕輸出控制

專門的術語叫作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

1. 控制輸出效果

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

相關文章
相關標籤/搜索