shell指令碼中echo顏色設定
阿新 • • 發佈:2021-01-11
問題:跑shell指令碼時,想增加高亮輸出
第一種設定方法:
顏色字號表
顯示方式 | 意義 |
---|---|
0 | 終端預設設定 |
1 | 高亮顯示 |
4 | 使用下劃線 |
5 | 閃爍 |
7 | 反白顯示 |
8 | 不可見 |
前景色 | 背景色 | 顏色 |
---|---|---|
30 | 40 | 黑色 |
31 | 41 | 紅色 |
32 | 42 | 綠色 |
33 | 43 | 黃色 |
34 | 44 | 藍色 |
35 | 45 | 紫紅色 |
36 | 46 | 青藍色 |
37 | 47 | 白色 |
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"
# 使用時直接呼叫顏色動作即可
$RED && echo 紅色 && $RESET
$GREEN && echo 綠色 && $RESET
$YELLOW && echo 黃色 && $RESET
$RESET && echo 重置 && $RESET
註釋:
- 需要增加
-n
選項,這樣引用時不會出現換行的問題。 \\
本質是\
,在雙引號中反斜線符號一定要寫成\\
。- 引用變數要放到其他語句前面,並使用
&&
效果圖:
第二種設定方法:
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}"
效果圖: