在printf的格式化字串中可以通過新增控制碼的方式來控制列印字元的顏色,shell指令碼中echo命令加上-e選項亦可控制輸出字元的顏色。
帶格式控制的一般格式為:
「\033[控制碼1; 控制碼2;控制碼3...m字串內容\033[控制碼m"
控制碼:
\033[0m 關閉所有屬性 :一般放在後面,這樣只會影響你輸入的字串的格式
\033[1m 設定高亮度
\03[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隱
\033[30m -- \033[37m 設定前景色 : 這個是設定字型的顏色,顏色**見下
\033[40m -- \033[47m 設定背景色 : 這個是設定字型的背景色,顏色**見下
\033[na 游標上移n行
\03[nb 游標下移n行
\033[nc 游標右移n行
\033[nd 游標左移n行
\033[y;xh設定游標位置
\033[2j 清屏
\033[k 清除從游標到行尾的內容
\033[s 儲存游標位置
\033[u 恢復游標位置
\033[?25l 隱藏游標
\33[?25h 顯示游標
字型顏色**:30-37
30:黑
31:紅
32:綠
33:黃
34:藍色
35:紫色
36:深綠
37:白色
背景顏色**:40-47
40:黑
41:深紅
42:綠
43:黃色
44:藍色
45:紫色
46:深綠
47:白色
了解了上面相關的控制碼描述後,我們就根據自己所需來控制輸出的字元格式。
實際應用中我們一般是將需要的輸出格式定義成巨集:
比如:#define color_none "\033[0m" //表示清除前面設定的格式
#define red "\033[1;31;40m" //40表示背景色為黑色, 1 表示高亮
#define blue "\033[1;34;40m"
#define green "\033[1;32;40m"
#define yellow "\033[1;33;40m"
使用:printf(red"hello world"color_none); 就會打出高亮的紅色字的hello world!!
如果不加color_none,那麼後續的輸出的字元顯示都會是紅色的。
printf 列印顏色
控制字元的通用格式如下 esc m 其中 esc 是轉義字元,其值為 033 是常量的左中括號 是若干屬性,通常是由乙個有特定意義的數字代替,每個屬性之間用分號分隔 m 就是字面常量字元m 屬性列表如下 1.通用格式控制 0 重置所有屬性 1 高亮 加粗 2 暗淡 4 下劃線 5 閃爍 7 反轉 8...
echo 列印帶顏色字元
檔名color.sh 效果圖 內容 bin bash 功能 字型顏色顯示 black 30 red 31 green 32 yellow 33 blue 34 white 37 格式 033 字型數字m內容 033 0m 或 033 背景數字 10 字型數字m內容 033 0m black red ...
c語言printf列印字串顏色
基本列印 格式 printf 033 字背景顏色 字型顏色m字串 033 0m printf 033 41 32m字型背景是紅色,字是綠色 033 0m n 41是字背景顏色,32是字型的顏色,字型背景是紅色,字是綠色是 要輸出的 字串.後面的 033 033 0m是 配對的為 控制碼。先來說一下顏...