1. 程式人生 > 其它 >shell指令碼中echo顏色設定

shell指令碼中echo顏色設定

技術標籤:linuxshellpythonjavabash

問題:跑shell指令碼時,想增加高亮輸出

第一種設定方法:

顏色字號表

顯示方式意義
0終端預設設定
1高亮顯示
4使用下劃線
5閃爍
7反白顯示
8不可見
前景色背景色顏色
3040黑色
3141紅色
3242綠色
3343黃色
3444藍色
3545紫紅色
3646青藍色
3747白色


vim echo.sh

#!/bin/bash
# 定義顏色動作, 把echo -e也定義到變數中
RED="echo -en \\E[4;31m"
GREEN="echo -en \\E[7;32m"
YELLOW="echo -en \\E[5;33m"

RESET="echo -en \\E[0;39m"

# 使用時直接呼叫顏色動作即可
$RED && echo 紅色 && $RESET
$GREEN && echo 綠色 && $RESET
$YELLOW && echo 黃色 && $RESET
$RESET && echo 重置 && $RESET

註釋:
  1. 需要增加-n選項,這樣引用時不會出現換行的問題。
  2. \\本質是\,在雙引號中反斜線符號一定要寫成\\
  3. 引用變數要放到其他語句前面,並使用&&
    連線。
效果圖:

第二種設定方法:

put 命令會利用 terminfo 資料庫中的資訊,來控制和更改我們的終端,比如控制游標、更改文字屬性、控制螢幕,以及為文字塗色。
其中,為文字塗色的方法是:

  • tput setab:用於設定背景色;
  • tput setaf:用於設定前景色。

顏色字號定義

數值 0 1 2 3 4 5 6 7
顏色 黑色 紅色 綠色 黃色 藍色 洋紅色 黃色 白色


vim echo1.sh

#/bin/bash
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
RESET=$(tput sgr0)
echo "${RED}red ${RESET}"
echo "${GREEN}green ${RESET}"

效果圖: