printf列印帶顏色的字元

2022-06-28 09:48:08 字數 1445 閱讀 7388

在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是 配對的為 控制碼。先來說一下顏...