在shell中使用echo命令輸出帶顏色的文本

來源:互聯網
上載者:User

首先熟悉一下echo命令

名稱
       echo - 顯示一行文本

概要
       echo [選項]... [字串]...

描述
       向標準輸出輸出字串。

       -n     不輸出分行符號

       -e     開啟反斜線ESC轉義

       -E     取消反斜線ESC轉義 (預設)

       --help 顯示協助

       --version 顯示版本

大致就這樣吧。
注意要輸出顏色必須有 -e 選項。

然後說一下重點:ANSI控制碼在輸出有顏色文本方面應用。

-e 用來開啟echo中的轉義
/e 或 /033 來輸出Esc符號
設定顏色的格式: /e[背景色;前景色彩;高亮m
恢複預設為 /e[0m
其中背景色可以被以下數字替換
0 透明(使用終端顏色), 40 黑, 41 紅, 42 綠, 43 黃, 44 藍 45 紫, 46 青綠, 47白(灰)

前景色彩(也就是文本的顏色)可以被以下數字替換
30 黑 31 紅, 32 綠, 33 黃, 34 藍, 35 紫, 36 青綠, 37 白(灰)

高亮是1,不高亮是0
注意m後面緊跟字串。

比如
lonelycorn@untbook:~$ echo -e '/033[0;33;1mabc/033[0m'
輸出
abc

然後給幾個比較強大的指令碼函數
1 cfont
#by zuoyang http://hi.baidu.com/test/
cfont()
{
while (($#!=0))
do
        case $1 in
                -b)
                        echo -ne " ";
                ;;
                -t)
                        echo -ne "/t";
                ;;
                -n)     echo -ne "/n";
                ;;
                -black)
                        echo -ne "/033[30m";
                ;;
                -red)
                        echo -ne "/033[31m";
                ;;
                -green)
                        echo -ne "/033[32m";
                ;;
                -yellow)
                        echo -ne "/033[33m";
                ;;
                -blue)
                        echo -ne "/033[34m";
                ;;
                -purple)
                        echo -ne "/033[35m";
                ;;
                -cyan)
                        echo -ne "/033[36m";
                ;;
                -white|-gray) echo -ne "/033[37m";
                ;;
                -reset)
                        echo -ne "/033[0m";
                ;;
                -h|-help|--help)
                        echo "Usage: cfont -color1 message1 -color2 message2 ...";
                        echo "eg:       cfont -red [ -blue message1 message2 -red ]";
                ;;
                *)
                echo -ne "$1"
                ;;
        esac
        shift
done
}
使用方法是
cfont -顏色 字串...
如:
cfont -cyan abc
注意使用時要換行需要加入 -n 選項。想要恢複預設的要加入 -reset選項。

2顏色碼錶
#!/bin/bash
T='gYw' # The test text

echo
echo "        default 40m     41m     42m     43m     44m     45m     46m
47m"
## FGs 為前景(foreground)色, BG 為背景(background)色
for FGs in '    m' '   1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' '1;32m' '
33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' ' 36m' '1;36m' ' 37m' '1;37m'
        do
        FG=$(echo $FGs|tr -d ' ')
        echo -en " $FGs /033[$FG $T "
        for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
                do
                echo -en " /033[$FG/033[$BG $T /033[0m"
        done
        echo
done
echo

沒了,就這樣吧。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.