Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52970
  • 博文数量: 32
  • 博客积分: 26
  • 博客等级: 民兵
  • 技术积分: 13
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-01 23:00
文章分类

全部博文(32)

文章存档

2013年(32)

我的朋友

分类: Python/Ruby

2013-11-20 09:43:27

原文地址:带颜色的echo 作者:sun5411

首先熟悉一下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




给几个比较强大的脚本函数
cfont

#by zuoyang
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选项。
阅读(540) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~