转载:http://www.zsythink.net/archives/111

在上一篇总结echo命令的文章中,我们描述了echo命令的常用选项,可以点击如下链接查看。

http://www.zsythink.net/archives/96

这篇文章中,我们继续聊聊echo命令

使用echo命令的-e选项,除了能够输出转义字符,还能够在命令行中输出彩色的字符,或者带有彩色背景的字符。

我们对比着示例,再给大家详细的解释,示例效果如下。

可以看到,上例中输出了红色的大写的"TEST",这就是我们所说的,使用echo -e 输出彩色字符的效果。

echo -e我们就不解释了,不管是输出转义字符还是输出彩色字符,都需要使用-e选项。

我们来解释一下下图中红线标注的字符串是什么意思。

为了方便解释,我们尽量的缩小范围,如下图,我们排除"TEST"字符串,因为这就是我们要输出的内容,没有什么好解释的,排除输出内容后,结构如下

从上图可以看出,如果要想输出红色字符,至少需要两部分,\033[31m 和 \033[0m ,这些代码有一个专业名词,叫做"ANSI控制码",但是为了方便理解,我们先用通俗的语言解释它们,用不专业的思维去理解它们。

我们可以把\033[31m 理解成"开始输出红色字符",把 \033[0m理解成"结束输出红色字符"。

当echo -e遇到\033[31m的时候,就认为自己要输出红色字符了,\033[31m就是一个信号,它告诉echo -e,需要开始输出红色字符了, \033[0m也是一种信号,它告诉echo 命令,红色字符已经不能输出了,再输出的字符应该是黑白字符了,不能是彩色的了。

那么,如果我们想要输出绿色字符,该怎么写呢,示例如下

细心的你一定已经发现,输出红色TEST字符与输出绿色TEST字符的唯一区别就是下图标注的位置。

也就是说,我们只要改变对应位置的数字,就能改变输出字符的颜色,所以,我们将能够输出的颜色对应的数字总结如下:

30:黑色

31:红色

32:绿色

33:黄色

34:蓝色

35:紫色

36:浅蓝色

37:灰色

所以,对应上述颜色号码,输出效果如下:

除了能够使用echo命令输出彩色字符,我们还能够为彩色字符添加彩色背景,比如,我们想要输出具有黄色背景的红色字符,可以使用如下方法

那么我们对比一下,输出红色字符的echo命令,与输出黄色背景的红色字符的echo命令,具体有什么不同。

可以看到,唯一不同的地方就是带有黄色背景的命令中,多出了"43;"   ,其他部分的命令都一样。

聪明如你一定想到了,"43;"代表黄色背景,那么别的背景颜色一定会有其对应的数字编号,没有错,此处列出背景色编号:

40:黑色

41:红色

42:绿色

43:黄色

44:蓝色

45:紫色

46:浅蓝色

47:灰色

我们可以同时设定字符的颜色与背景的颜色,怎样搭配随你喜欢。

比如,红配绿,赛狗pi

比如,红配蓝,sao不完

比如···各种搭配,全凭老板您喜欢。

我们在之前已经说过, "\033[31m"   "\033[m"这些代码都属于 ansi 控制码。

ansi控制码中不仅有控制颜色的控制码,还有一些提供其他功能的控制码,我们来总结一下。

常用ANSI控制码总结如下:

\033[0m 关闭所有属性 ,也就是说此控制码前面的控制码将会失效,此控制码中的0可以省略。

\033[1m 设置高亮度

\033[4m 下划线

\033[5m 闪烁

\033[7m 反显 ,撞色显示,显示为白底黑字,或者显示为黑底白字

\033[8m 消隐 ,字符颜色将会与背景颜色相同

\033[30m -- \33[37m 设置字符颜色

\033[40m -- \33[47m 设置背景色

\033[K 清除从光标到行尾的内容

上述ANSI控制码中,有的不能在bash命令行中运行,我们可以掩饰几个可用的,常用的ANSI控制码,示例如下图:

上图中,我们利用echo命令,使用-e选项,结合着ANSI控制码,输出了带有下划线的字符以及撞色显示的字符。

除了echo命令,我们也可以在别的地方使用ansi控制符,比如改变命令提示符的颜色

但是这不属于echo命令的使用,我们就不详细总结了。

echo命令详解 (二)相关推荐

  1. Linux系统与网络、磁盘参数和日志监控等命令详解二

    创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点! 个人座右铭: 1.没有横空出世,只要厚积一定发. ...

  2. ARP命令详解--网络命令详解二

    显示和修改"地址解析协议 (ARP)"缓存中的项目.ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址.计算机上安装的每一个以太网或令牌环 ...

  3. linux操作系统之终端命令echo命令详解 通俗易懂

    一. 使用格式:echo 文字内容 echo命令可以将传递给终端的参数再在终端显示一遍. 那么为什么要将传递的给终端的参数再在终端显示一遍呢? 其实该命令单独使用的几率是很小的,该命令通常是配合重定向 ...

  4. linux下echo命令详解(转)

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 echo命令的功能是在显示器上显示一段文字,一般起到一个提示 ...

  5. linux 命令详解 二十四

     11.  数组: Shell中提供了创建一维数组的能力,你可以把一串数字.名字或者文件放在一个变量中.使用declare的-a选项即可创建它们,或者在变量后面增加下标操作符直接创建.和很多其它开发语 ...

  6. Shell命令:echo 命令详解

    http://blog.chinaunix.net/uid-27124799-id-3383327.html # echo命令介绍 功能说明:显示文字. 语 法:echo [-ne][字符串] / e ...

  7. linux 命令详解 二十七

       4.  循环语句:     Bash Shell中主要提供了三种循环方式:for.while和until.     for循环声明格式:     for variable in word_lis ...

  8. linux 命令详解 二十二

    #${variable:=word}的示例,其C语言表示形式为: #    if (NULL == variable) {     #        variable=world;     #     ...

  9. Linux下的sort排序命令详解(二)

    有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思.今天,我们就来搞定它--k选项! 1 准备素材 [root@FDMdevBI opt]# ...

最新文章

  1. R语言str_trim函数去除字符串中头部和尾部的空格
  2. 比特币官网管理者Cobra认可BCH支付属性
  3. 使用trackBy启动流程
  4. android界面布局错位,IOS 浏览器页面布局错位(如:点不到)的分析与解决
  5. virtualenv创建独立的Python环境
  6. Python3.6字符串新特性
  7. 04 bbed修复system文件头损坏
  8. 云计算vs雾计算:物联网的发展能否「云开雾散」?
  9. 基于auto.js的网课自动签到软件以及facerig控制摄像头内容及auto.js新手教学
  10. 北理工-大二数据结构乐学编程题-约瑟夫问题、验证表、循环小数、综教楼后的坑...
  11. Java 设计模式 --- Builder模式 Java Builder 模式
  12. 自媒体时事热点类素材哪里找?推荐这3个网站
  13. 计算机辅助绘图包括,计算机辅助绘图实用教程
  14. Linux下通过iwconfig命令连接无线
  15. 1 k 1 k2c语言,一张图告诉你斐讯路由器K1S、K2,K2C的区别
  16. 新思课堂C语言答案,新思课堂APP最新版下载_新思课堂APP官方版1.6.8下载_QQ下载站...
  17. 安卓是属于全人类的还是谷歌的私有产品?
  18. stm32f103r6最小系统原理图_PCB stm32的最小系统原理图 基于STM32F103VBT6的最小系统板 - 下载 - 搜珍网...
  19. php 提取视频中的声音,怎么提取视频的声音 提取视频中的声音
  20. FTP手机和PC互传文件

热门文章

  1. NPL系列之分词和分词框架(二)
  2. 网站建设(一)PHP深入学习
  3. 计算机辅助开发方法的优缺点,高校计算机辅助教学应用的利弊分析
  4. Linux赋予文件权限 最高权限 可执行权限
  5. 学习笔记-----Material design
  6. 每一个c语言程序允许有多个函数,一个c语言程序由什么构成
  7. 电动车霍尔转把调速时,电机功率变不变呢?是不是当速度较低时,扭矩较大呢?,电动车加速到匀速过程中功率不变电压不变,反电动势内在改变扭矩大小。从而体现出P=FV。类似燃油汽车膨胀的冲量定理改变力大小
  8. Qlik Sense - 根据配置的记录,实现自动抽取源DB表/视图
  9. js中toString用法
  10. 抽象语法树(AST)