在shell腳本編寫中,echo用於輸出字符串等提示信息,當我們需要格外顯示色彩及閃爍效果如下:
一、在執行shell中顯示色彩:
語法格式:
echo -e "\033[顏色1:顏色2m 要展示的文字 \033[0m"
說明:
- -e選項:表示允許反斜杠(對字符)轉義。
- \033[顏色1;顏色2m:稱為轉義序列,它本身是一個整體,中間不要有空格。
- \033[:轉義序列的開始。其中\033代表Esc符號,也可以使用\E或\e來代替。
- 顏色1和顏色2:表示字體的前景色或背景色,至於顏色1和顏色2哪一個表示前景色,哪一個表示背景色,由其設定的數值來決定,前景色和背景色的數值空間是不同的。
- m:轉義序列的終止標志。
- \033[0m:表示將顏色恢復回原來的配色。
我們可以用一張原理圖來理解:
所涉及的顏色如下:
二、在shell腳本中顯示色彩
①定義顏色變量
1 [root@bqh-117 scripts]# vim echoys.sh 2 #!/bin/sh 3 #定義顏色變量 4 RED='\E[1;31m' # 紅 5 GREEN='\E[1;32m' # 綠 6 YELOW='\E[1;33m' # 黃 7 BLUE='\E[1;34m' # 藍 8 PINK='\E[1;35m' # 粉紅 9 RES='\E[0m' # 清除顏色 10 11 #用echo -e來調用 12 echo -e "${RED} this is red color ${RES}" 13 echo -e "${GREEN} this is green color ${RES}" 14 echo -e "${YELOW} this is red yelow ${RES}" 15 echo -e "${BLUE} this is blue color ${RES}" 16 echo -e "${PINK} this is pink color ${RES}"
②定義顏色動作
1 [root@bqh-117 scripts]# vim echoys1.sh 2 #!/bin/sh 3 #定義顏色動作, 把echo -en也定義到變量中 4 SETCOLOR_SUCCESS="echo -en \\E[1;32m" 5 SETCOLOR_FAILURE="echo -en \\E[1;31m" 6 SETCOLOR_WARNING="echo -en \\E[1;33m" 7 SETCOLOR_NORMAL="echo -en \\E[0;39m" 8 9 #使用時直接調用顏色動作即可 10 $SETCOLOR_SUCCESS && echo SUCCESS 11 $SETCOLOR_FAILURE && echo FAILURE 12 $SETCOLOR_WARNING && echo WARNING 13 $SETCOLOR_NORMAL && echo NORMAL
說明:
第二種方法和第一種方法的思路類似,唯一不同的是我們把 echo 也加入到了定義中。這樣用時不用頻繁輸入 echo 了,不過,需要注意其中的一些細節:
1)需要增加-n
選項,這樣引用時不會出現換行的問題。
2)\\
本質是\
,在雙引號中反斜線符號一定要寫成\\
。
3)引用變量要放到其他語句前面,並使用&&
連接。
三、在shell中顯示顏色並提示閃爍警示:
1 [root@bqh-117 scripts]# vim echoys.sh 2 #!/bin/sh 3 #定義顏色變量 4 RED='\E[1;31m' # 紅 5 GREEN='\E[1;32m' # 綠 6 YELOW='\E[1;33m' # 黃 7 BLUE='\E[1;34m' # 藍 8 PINK='\E[1;35m' # 粉紅 9 SHAN='\E[33;5m' #黃色閃爍警示 10 RES='\E[0m' # 清除顏色 11 12 #用echo -e來調用 13 echo -e "${SHAN} this is yelow flashing warning ${RES}" #黃色閃爍警示調用效果 14 echo -e "${GREEN} this is green color ${RES}" 15 echo -e "${YELOW} this is red yelow ${RES}" 16 echo -e "${BLUE} this is blue color ${RES}" 17 echo -e "${PINK} this is pink color ${RES}"
ok ,以上用法相信在今后的shell中會帶來很多色彩,讓用戶有一個更高的視覺效果。