1. 程式人生 > >SHELL輸出顏色和閃爍控制

SHELL輸出顏色和閃爍控制

背景色 meta containe 顯示 ron test nta ans fun

Shell 顏色和閃爍控制

在Shell下有時候需要定制輸出,比如給輸出加上顏色,或者顯示高亮,或者添加閃爍等。
然後這些顏色代碼或者控制碼等相對不好記住。這個時候我們可以考慮把最終想要的結果制定成對應的函數,
在使用的時候直接調用函數會方便很多

格式

echo -e "\033[字背景顏色;字體顏色m字符串\033[控制碼"

定制顏色函數

## blue to echo 
function blue(){
    echo -e "\033[34m[ $1 ]\033[0m"
}


## green to echo 
function green(){
    echo -e "\033[32m[ $1 ]\033[0m"
}

## Error to warning with blink
function bred(){
    echo -e "\033[31m\033[01m\033[05m[ $1 ]\033[0m"
}

## Error to warning with blink
function byellow(){
    echo -e "\033[33m\033[01m\033[05m[ $1 ]\033[0m"
}


## Error
function bred(){
    echo -e "\033[31m\033[01m[ $1 ]\033[0m"
}

## warning
function byellow(){
    echo -e "\033[33m\033[01m[ $1 ]\033[0m"
}

可以把這些函數寫入到一個公共的SHELL腳本中,每次在編寫其他腳本的時候用如下方式調用,即可

source /root/bin/common

或者可以把上述代碼直接粘貼到當前編寫的腳本中去。

當然可以推薦第一種方式。不用每次都復制粘貼。 直接 source 調用 即可

舉例

root@pts/4 $ cat /root/bin/common 
#!/usr/bin/env bash

## blue to echo 
function blue(){
    echo -e "\033[35m[ $1 ]\033[0m"
}


## green to echo 
function green(){
    echo -e "\033[32m[ $1 ]\033[0m"
}

## Error to warning with blink
function bred(){
    echo -e "\033[31m\033[01m\033[05m[ $1 ]\033[0m"
}

## Error to warning with blink
function byellow(){
    echo -e "\033[33m\033[01m\033[05m[ $1 ]\033[0m"
}


## Error
function red(){
    echo -e "\033[31m\033[01m[ $1 ]\033[0m"
}

## warning
function yellow(){
    echo -e "\033[33m\033[01m[ $1 ]\033[0m"
}
Dev-web-solr [/opt/hexo2] 2016-11-28 17:52:03
root@pts/4 $ cat /root/bin/test.sh 
#!/usr/bin/env bash

source /root/bin/common

green "hello world with green color"
blue "hello world with blue color"

bred "error info with blink"
byellow "warning info with blink"

測試結果如下所示

技術分享圖片 shell-color-1.png 技術分享圖片 shell-color-2.png

附加 shell輸出 字體背景顏色和字體顏色,控制碼等參數

字體背景顏色

40:黑 
41:深紅 
42:綠 
43:黃色 
44:藍色 
45:紫色 
46:深綠 
47:白色 

字體顏色

30:黑 
31:紅 
32:綠 
33:黃 
34:藍色 
35:紫色 
36:深綠 
37:白色 

控制碼

這裏常用有 設置高亮度/下劃線/閃爍/關閉所有屬性

\33[0m 關閉所有屬性 
\33[01m 設置高亮度 
\33[04m 下劃線 
\33[05m 閃爍 
\33[07m 反顯 
\33[08m 消隱 
\33[30m -- \33[37m 設置前景色 
\33[40m -- \33[47m 設置背景色 
\33[nA 光標上移n行 
\33[nB 光標下移n行 
\33[nC 光標右移n行 
\33[nD 光標左移n行 
\33[y;xH設置光標位置 
\33[2J 清屏 
\33[K 清除從光標到行尾的內容 
\33[s 保存光標位置 
\33[u 恢復光標位置 
\33[?25l 隱藏光標 
\33[?25h 顯示光標


作者:全棧運維
鏈接:https://www.jianshu.com/p/ba1b8aded634
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

SHELL輸出顏色和閃爍控制