shell指令碼輸出輸出帶顏色內容__shell

來源:互聯網
上載者:User

本文主要介紹了如何在shell指令碼中輸出帶顏色的內容。

shell指令碼中 echo 和 printf 都可以輸出內容。 我們看以下樣本

echo -e "\033[43;35m david use echo say Hello World \033[0m \n" printf "\033[44;36m david use printf say Hello World \033[0m \n" echo -e "\033[47;30;5m david use echo say \033[0m Hello World \n"

輸出如下:

它的格式是這樣的:

echo -e "\033[字背景顏色;字型顏色m 字串 \033[0m"  或者printf "\033[字背景顏色;字型顏色m 字串 \033[0m"  或者echo -e "\033[字背景顏色;字型顏色m;ascii碼m 字串 \033[0m 字串(can null) \n" 
原理

這裡以一個例子來說明:

echo -e "\033[47;30;5m david use echo say \033[0m Hello World \n" 

作用:
42->背景色為白色,
30->字型為黑色,
5->字型閃爍,
0->關閉所有屬性
輸出字元 “david use echo say”,然後重新設定螢幕到預設設定,輸出字元 “Hello World”後顏色回複正常

-e是echo的一個可選項,用於啟用特殊字元的解析器, 也就是對反斜線轉義符(即\)的解釋。\033引導非常規字元序列。意味著設定屬性然後結束非常規字元序列,這裡起效果的字元是
47;30;5和0。修改47;30;5可以產生不同顏色的組合,數值和編碼的前後順序沒有關係。

組合命令:

echo -e "\033[20;1H\033[1;4;32m david use echo say \033[0m Hello World \n"

這行命令首先\033[20;1H將游標移動到終端第20行第1列,之後的\033[1;4;32m將文字屬性設定為高亮、帶底線且顏色為綠色,然後輸出Hello,world;最後\033[0m將終端屬性設為預設,這樣就不會看到連命令完成後的命令提示字元也變了樣兒了。

我們可以通過各種命令的組合可以實現對終端輸出地複雜控制。 範圍

0 重新設定屬性到預設設定1 設定粗體2 設定一半亮度(類比彩色顯示器的顏色)4 設定底線(類比彩色顯示器的顏色)5 設定閃爍7 設定反向圖象8 消隱 22 設定一般密度24 關閉底線25 關閉閃爍27 關閉反向圖象// 字型顏範圍(前景顏色):30~3930:黑 31:紅 32:綠 33:黃 34:藍色 35:紫色 36:深綠 37:白色 38:在預設的前景顏色上設定底線39:在預設的前景顏色上關閉底線// 字背景色彩範圍(背景顏色):40~49 40:黑 41:深紅 42:綠 43:黃色 44:藍色 45:紫色 46:深綠 47:白色 nA 游標上移n行 nB 游標下移n行 nC 游標右移n行 nD 游標左移n行 y;xH設定游標位置 2J 清屏 K 清除從游標到行尾的內容 s 儲存游標位置 u 恢複游標位置 ?25l 隱藏游標 ?25h 顯示光線標
一些顏色
echo -e "\033[0m none \033[0m"echo -e "\033[30m black \033[0m"echo -e "\033[1;30m dark_gray \033[0m"echo -e "\033[0;34m blue \033[0m"echo -e "\033[1;34m light_blue \033[0m"echo -e "\033[0;32m green \033[0m"echo -e "\033[1;32m light_green \033[0m"echo -e "\033[0;36m cyan \033[0m"echo -e "\033[1;36m light_cyan \033[0m"echo -e "\033[0;31m red \033[0m"echo -e "\033[1;31m light_red \033[0m"echo -e "\033[0;35m purple \033[0m"echo -e "\033[1;35m light_purple \033[0m"echo -e "\033[0;33m brown \033[0m"echo -e "\033[1;33m yellow \033[0m"echo -e "\033[0;37m light_gray \033[0m"echo -e "\033[1;37m white \033[0m"echo -e "\033[0m none \033[0m"echo -e "\033[0m none \033[0m"echo -e "\033[0m none \033[0m"echo -e "\033[0m none \033[0m"echo -e "\033[0m none \033[0m"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"echo -e "\033[4;31m 底線紅字 \033[0m"echo -e "\033[5;31m 紅字在閃爍 \033[0m"echo -e "\033[8m 消隱 \033[0m "

效果圖如下:
擴充 預先定義顏色變數

RED_COLOR='\E[1;31m'  YELOW_COLOR='\E[1;33m' BLUE_COLOR='\E[1;34m'  RESET='\E[0m'#需要使用echo -eecho -e  "${RED_COLOR}===david say red color===${RESET}"echo -e  "${YELOW_COLOR}===david say yelow color===${RESET}"echo -e  "${BLUE_COLOR}===david say green color===${RESET}"

效果圖如下:

如有錯誤,歡迎指出。

email:dxmdxm1992#gmail.com

blog: csdn magicdavid.top

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.