文档章节

在shell中使用echo命令输出带颜色的文本

BarZu
 BarZu
发布于 2016/11/01 19:57
字数 430
阅读 33
收藏 2

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

输出

<div style="color:yellow">abc</div>

给个比较强大的脚本函数

#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选项。

本文转载自:http://blog.chinaunix.net/uid-20204919-id-1972114.html

BarZu
粉丝 47
博文 21
码字总数 20303
作品 4
广州
高级程序员
私信 提问
如何在Linux终端里用Shell和C输出带颜色的文字(转)

原文:http://blog.csdn.net/acmee/article/details/6613060 我们知道,使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,...

acmfly
2013/08/03
0
0
linux一搏(打印)---高手勿喷

linux中打印有echo和printf 一、echo echo是用于终端打印的基本命令,默认情况下,echo会在每次调用后添加一个换行符。如果要忽略换行,可以echo后面,字符窜之前加上"-n". echo后面打印的内...

益达先生
2013/02/05
0
0
Linux Shell脚本攻略 读书笔记

Linux Shell脚本攻略 读书笔记 这是一本小书,总共253页,但内容却很丰富,书中的示例小巧而实用,对我这样总是在shell门前徘徊的人来说真是如获至宝; 最有价值的当属文本处理,对这块我单独...

小股儿
2014/01/06
148
0
Linux的shell脚本grep、sed、awk练习和diff、patch、cut、sort介绍

一.grep文本过滤器 1.格式grep [options][filname] 2.常用参数选项: i 不区分大 小写(只适用于单字符) E可用扩展正则表达式 egrep F固定字符串匹配fgrep A显示匹配行的后多少行 B显示匹配行的...

一百个小排
2017/11/14
0
0
Linux Basics command

ls命令用来显示目标列表,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。 语法 ls(选项)(参数) 选项 -a:显示所有档案及目录(ls内定将档...

yirich
2015/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试题:你简历中写到熟悉Spring源码,那你给我说说它用到了那些设计模式?

Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范。好了,话不多说,开始今天的内容。 spring中常用的设计模式达到九种。 模板方法(Template Method)...

我最喜欢三大框架
34分钟前
1
0
Sentinel Dashboard中修改规则同步到Nacos

上一篇我们介绍了如何通过改造Sentinel Dashboard来实现修改规则之后自动同步到Apollo。下面通过这篇,详细介绍当使用Nacos作为配置中心之后,如何实现Sentinel Dashboard中修改规则同步到N...

程序猿DD
41分钟前
4
0
Jenkins发送测试报告邮件

简介:总结怎么使用Jenkins执行自动化测试后发送测试报告邮件 一、系统设置 1、在Jenkins安装Email Extension Plugin插件,如下图: 2、设置Extended E-mail Notification (1)进入“系统管理”...

shzwork
43分钟前
1
0
状态模式

//相当把一个State对象存到Context对象中,然后通过Context实例化对象调用保存的state对象去调用state的相应的方法 https://blog.csdn.net/syc434432458/article/details/51210361...

南桥北木
55分钟前
3
0
基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计

本文首发于:Jenkins 中文社区 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 "有所了解"指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当...

Jenkins中文社区
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部