[bash] 顏色控制

bash, color

有時候我們要在螢幕出輸出顯眼的顏色,讓使用者看到關鍵字

例如我會用測試PASS時輸出綠色,測試FAIL時輸出紅色,測試WARNING時輸出黃色

需要靠顏色控制碼來完成

一般常用的有七種,如果要更多變化請參考最後的網站

30 Black 黑色
31 Red 紅色
32 Green 綠色
33 Yellow 黃色
34 Blue 藍色
35 Magenta 洋紅色
36 Cyan 青綠色
37 White 白色

使用函數輸出的程式碼如下

#!/bin/bash

# Color
COLOR_RED='\033[31m';
COLOR_GREEN='\033[32m';
COLOR_YELLOW='\033[33m'
COLOR_END='\033[0m'

function show_red_text()
{
    TEXT=$1
    echo -e "${COLOR_RED}${TEXT}${COLOR_END}"
}

function show_green_text()
{
    TEXT=$1
    echo -e "${COLOR_GREEN}${TEXT}${COLOR_END}"
}

function show_yellow_text()
{
    TEXT=$1
    echo -e "${COLOR_YELLOW}${TEXT}${COLOR_END}"
}

show_red_text "FAIL"
show_green_text "PASS"
show_yellow_text "WARNING"

輸出結果

FAIL

PASS

WARNING

有些程式碼會直接將顏色代碼輸出,但可讀性非常的差,建議不要這樣使用

#!/bin/bash

echo -e "\033[32mHello world\033[0m"

如上面這個例子,一般人看到完全不知道這行到底是要做什麼

參考網站