Linux Shell输出带颜色文本

google了好久,终于搞明白了怎么输出带颜色的文本。
首先熟悉一下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
没了,就这样吧。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值