echo 在shell及腳本中顯示色彩及閃爍警告效果


在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中會帶來很多色彩,讓用戶有一個更高的視覺效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM