1. 程式人生 > >echo改變輸出的顏色

echo改變輸出的顏色

這篇並不是嚴格意義上的原創,只是整合了網上其他人的資料,加上自己的理解。

echo命令介紹

功能說明:顯示文字。
語   法:echo [-ne][字串] / echo [--help][--version]
補充說明:echo會將輸入的字串送往標準輸出。輸出的字串間以空白字元隔開, 並在最後加上換行號。
參   數
    -n 不要在最後自動換行
    -e 開啟轉義。若字串中出現以下字元,則特別加以處理,而不會將它當成一般文字輸出:
           \a 發出警告聲;
           \b 刪除前一個字元;
           \c 最後不加上換行符號;
           \f 換行但游標仍舊停留在原來的位置;
           \n 換行且游標移至行首;
           \r 游標移至行首,但不換行;
           \t 插入tab;
           \v 與\f相同;
           \\ 插入\字元;
           \nnn 插入nnn(八進位制)所代表的ASCII字元;
    -E

 取消轉義 (預設)
    -help 顯示幫助
    -version 顯示版本資訊

echo輸出顏色文字

格式: echo -e "\033[xx;xx;...;xxm" 
其中:-e  開啟轉義
           \033[  八進位制033即退出鍵<ESC>的ASCII碼,表示設定文字顏色
           xx;...;xx

  xx是選擇編碼,不同的數值代表設定不同項,下面會介紹編碼。編碼的順序沒要求(網上好多的介紹的有誤,認為背景顏色在前,文字顏色在後)。
           表示設定結束

一般的用法是:   echo -e "\033[背景顏色;文字顏色m字串\033[0m"
意思是:用設定的背景顏色和文字顏色列印字串,然後再把背景色和文字顏色恢復預設設定,0表示使用預設設定。

可以選擇的編碼如下所示(這些顏色是ANSI標準顏色):
          編碼          顏色/動作
          0            重新設定屬性到預設設定
          1            設定粗體
          2            設定一半亮度(模擬彩色顯示器的顏色)
          4            設定下劃線(模擬彩色顯示器的顏色)
          5            設定閃爍
          7            設定反向圖象
          22           設定一般密度
          24           關閉下劃線
          25           關閉閃爍
          27           關閉反向圖象
          30           設定黑色前景(文字顏色)
          31           設定紅色前景
          32           設定綠色前景
          33           設定黃色前景
          34           設定藍色前景
          35           設定紫色前景
          36           設定青色前景
          37           設定白色(灰色)前景
          38           在預設的前景顏色上設定下劃線
          39           在預設的前景顏色上關閉下劃線
          40           設定黑色背景
          41           設定紅色背景
          42           設定綠色背景
          43           設定黃色背景
          44           設定藍色背景
          45           設定紫色背景
          46           設定青色背景
          47           設定白色(灰色)背景
          49           設定預設黑色背景
    其他有趣的程式碼還有:
          \033[2J      清除螢幕
          \033[0q      關閉所有的鍵盤指示燈
          \033[1q      設定"滾動鎖定"指示燈(Scroll Lock)
          \033[2q      設定"數值鎖定"指示燈(Num Lock)
          \033[3q      設定"大寫鎖定"指示燈(Caps Lock)
          \033[15:40H   把關閉移動到第15行,40列
          \007        發蜂鳴生beep

一些說明
    前景顏色各數字是對應背景顏色減去10。
    結束非常規字元序列的"m"要緊跟前面的數字,不能有空格。
    命令也可以寫成echo -e "^[[44;37;5m ME \033[0m COOL",其中的"^["是先按Ctrl-V,然後再按<ESC>鍵產生的。(不建議使用這種方法)。

參考:
https://blog.csdn.net/qualcent/article/details/7106483
https://www.cnblogs.com/lr-ting/archive/2013/02/28/2936792.html