shell中設置文字輸出的顏色及字體格式

shell中設置文字輸出的顏色及字體格式

1Linux中設置文本顏色及背景色

Shell 使用 ANSI 轉義碼 (ANSI escape codes) 進行顏色輸出。轉義序列顏色輸出表如下

顏色

前景色

背景色

黑色 (Black)

30

40

紅色 (Red)

31

41

綠色 (Green)

32

42

××× (Yellow)

33

43

藍色 (Blue)

34

44

紫紅色 (Magenta)

35

45

青色 (Cyan)

36

46

白色 (White)

37

47

 

echo -e "\033[顏色值m 文本"

這句代碼中\033[ 作爲轉義序列的開始,你也可以使用 "\e[" 顏色值處設定前景色值。m 終止轉義序列,後面緊跟着就是生效的文本。echo 需要 -e 來開啓轉義序列。可以用 printf 代替 echo

printf  "\e[顏色值m 文本\n"

2shell中設置字體顏色及背景實例

1:打印藍色文本(兩種方法)

echo -e "\033[34m Hello World"

printf "\e[34m Hello World\n"

但是這樣執行之後,會使得其後面的文本輸出都是藍色,連命令提示符都是藍色。要使其返回顏色使用 \033[0m

 

使用不同的轉義序列組合來達到不同的效果,如下面加上背景色的顯示:

 

echo -e "\033[前景色值;背景色值m 文本\033[0m"

 

前景色值和背景色值使用分號間隔,不分先後,因爲兩種值的顏色範圍不一樣,比如 黑色 30 40 。另外分開寫同樣生效,如 \033[44m\033[32m

 

3Linux中設置字體屬性(加粗、閃爍、下劃線等)

轉義序列還可以設置文本在顯示屏上顯示的方式,如是否加粗等,如下表:

ANSI

含義

0

常規文本

1

粗體文本

4

含下劃線文本

5

閃爍文本

7

反色(補色)文本

 

加粗屬性合併後,有些變化。如下表:

關閉加粗

顏色

開啓加粗

顏色

0;30

(Black)

1;30

深灰 (Dark Gray)

0;31

(Red)

1;31

深紅 (Dark Red)

0;32

(Green)

1;32

深綠 (Dark Green)

0;33

(Yellow)

1;33

亮黃 (Yellow)

0;34

(Blue)

1;34

深藍 (Dark Blue)

0;35

紫紅 (Magenta)

1;35

暗紫紅 (Dark Magenta)

0;36

(Cyan)

1;36

深青 (Dark Cyan)

0;37

  (White)

1;37

(White)

特效可以疊加,需要使用“;”隔開,例如:閃爍+下劃線+白底色+黑字爲   \033[5;4;47;30m閃爍+下劃線+白底色+黑字爲\033[0m

4shell腳本實現各種字體顏色及背景設置

#!/bin/bash 

#下面是字體輸出顏色及終端格式控制 

#字體色範圍:30-37 

echo -e "\033[30m 黑色字 \033[0m" 

echo -e "\033[31m 紅色字 \033[0m" 

echo -e "\033[32m 綠色字 \033[0m" 

echo -e "\033[33m ×××字 \033[0m" 

echo -e "\033[34m 藍色字 \033[0m" 

echo -e "\033[35m 紫色字 \033[0m" 

echo -e "\033[36m 天藍字 \033[0m" 

echo -e "\033[37m 白色字 \033[0m" 

#字背景顏色範圍:40-47 

echo -e "\033[40;37m 黑底白字 \033[0m" 

echo -e "\033[41;30m 紅底黑字 \033[0m" 

echo -e "\033[42;34m 綠底藍字 \033[0m" 

echo -e "\033[43;34m 黃底藍字 \033[0m" 

echo -e "\033[44;30m 藍底黑字 \033[0m" 

echo -e "\033[45;30m 紫底黑字 \033[0m" 

echo -e "\033[46;30m 天藍底黑字 \033[0m" 

echo -e "\033[47;34m 白底藍字 \033[0m" 

 

#控制選項說明 

#\033[0m 關閉所有屬性 

#\033[1m 設置高亮度 

#\033[4m 下劃線 

echo -e "\033[4;31m 下劃線紅字 \033[0m" 

#閃爍 

echo -e "\033[5;34m 紅字在閃爍 \033[0m" 

#反影 

echo -e "\033[8m 消隱 \033[0m " 

 

#\033[30m-\033[37m 設置前景色 

#\033[40m-\033[47m 設置背景色 

#\033[nA光標上移n 

#\033[nB光標下移n 

echo -e "\033[4A 光標上移4 \033[0m" 

#\033[nC光標右移n 

#\033[nD光標左移n 

#\033[y;xH設置光標位置 

#\033[2J清屏 

#\033[K清除從光標到行尾的內容 

echo -e "\033[K 清除光標到行尾的內容 \033[0m" 

#\033[s 保存光標位置 

#\033[u 恢復光標位置 

#\033[?25| 隱藏光標 

#\033[?25h 顯示光標 

echo -e "\033[?25l 隱藏光標 \033[0m" 

echo -e "\033[?25h 顯示光標 \033[0m"

5、使用echo讓字符串顯示不同顏色

下面的命令可寫入腳本執行,根據實際情況替換需要改變顏色的文本。

echo -e "\033[30m 黑色字 可替換部分 \033[0m"

echo -e "\033[31m 紅色字 可替換部分 \033[0m"

echo -e "\033[32m 綠色字 可替換部分 \033[0m"

echo -e "\033[33m ×××字 可替換部分 \033[0m"

echo -e "\033[34m 藍色字 可替換部分 \033[0m"

echo -e "\033[35m 紫色字 可替換部分 \033[0m"

echo -e "\033[36m 天藍字 可替換部分 \033[0m"

echo -e "\033[37m 白色字 可替換部分 \033[0m"

6、通過定義變量的方式給字體加顏色

#!/bin/bash

#通過變量給字體加顏色

RED_COLOR='\E[1;31m'

GREEN_COLOR='\E[1;32m'

YELLOW_COLOR='\E[1;33m'

BLUE_COLOR='\E[1;34m'

PINK_COLOR='\E[1;35m'

RES='\E[0m'

echo -e "${RED_COLOR}=====紅色可替換部分=====${RES}"

echo -e "${GREEN_COLOR}=====綠色可替換部分=====${RES}"

echo -e "${YELLOW_COLOR}=====×××可替換部分=====${RES}"

echo -e "${BLUE_COLOR}=====藍色可替換部分=====${RES}"

echo -e "${PINK}=====粉色可替換部分=====${RES}"

 

7、開發一個給輸出內容加顏色的函數(也可以加背景顏色)

在腳本中傳2個參數,給指定內容(第一個參數),加指定顏色(第二個參數)

#!/bin/bash

#通過變量給字體加顏色

#這裏定義一個COLOR_1()函數,後面如果想改變字體顏色直接調用即可

COLOR_1(){

RED_COLOR='\E[1;31m'

GREEN_COLOR='\E[1;32m'

YELLOW_COLOR='\E[1;33m'

BLUE_COLOR='\E[1;34m'

PINK_COLOR='\E[1;35m'

RES='\E[0m'

#這裏判斷傳入的參數是否不等於2個,如果不等於2個就提示並退出

if [ $# -ne 2 ];then

    echo "Usage $0 content {red|yellow|blue|green|pink}"

    exit

fi

 

case "$2" in

   red|RED)

        echo -e "${RED_COLOR}$1${RES}"

        ;;

   yellow|YELLOW)

        echo -e "${YELLOW_COLOR}$1${RES}"

        ;;

   green|GREEN)

        echo -e "${GREEN_COLOR}$1${RES}"

        ;;

   blue|BLUE)

        echo -e "${BLUE_COLOR}$1${RES}"

        ;;

   pink|PINK)

        echo -e "${PINK_COLOR}$1${RES}"

        ;;

         *)

        echo -e "請輸入指定的顏色代碼:{red|yellow|blue|green|pink}"

esac

}

COLOR_1 "程序安裝報錯!" red

COLOR_1 "程序安裝成功!" green

COLOR_1 "輸出相關注釋信息" blue

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章