广告
返回顶部
首页 > 资讯 > 服务器 >深入理解Shell输出颜色与控制
  • 457
分享到

深入理解Shell输出颜色与控制

颜色Shell 2022-06-04 21:06:44 457人浏览 泡泡鱼
摘要

前言 大家都知道使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言。 一、shell下的实现方法 先来讲在shell

前言

大家都知道使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言

一、shell下的实现方法

先来讲在shell下,如何实现。用echo命令就可以实现,参看以下例子:


  echo -e "33[32mHello, world!"

当你在终端里敲下这条命令后,是不是发现系统用绿色输出了"Hello,world!",不止如此,连之后的命令提示符都变成了绿色?不要着急,听我继续说。echo命令-e选项的作用是激活终端对反斜线转义符(即)的解释。引号内33用于引导非常规字符序列,在这里的作用就是引导设置输出属性,后边的[32m就是将前景色设置为绿色,字母m表示设置的属性类别,数字代表属性值。

设置可以单独使用,例如:


  echo -e "33[0m"

这行命令的作用是恢复属性为默认值,也就是说0m设置项用于恢复默认值。现在你的终端是不是又一切正常了?

理解了这些,剩下的就简单了。用这种命令,除了设置文本前景色,还可以设置很多属性。

下边列出其他的设置项:


  33[0m 关闭所有属性
  33[1m 设置高亮度
  33[4m 下划线
  33[5m 闪烁
  33[7m 反显
  33[8m 消隐
  33[30m 至 33[37m 设置前景色
  33[40m 至 33[47m 设置背景色
  33[nA 光标上移n行 
  33[nB 光标下移n行
  33[nC 光标右移n行
  33[nD 光标左移n行
  33[y;xH设置光标位置
  33[2J 清屏
  33[K 清除从光标到行尾的内容
  33[s 保存光标位置 
  33[u 恢复光标位置
  33[?25l 隐藏光标
  33[?25h 显示光标

各数字所代表的颜色如下:

字背景颜色范围:40----49

40:黑

41:深红

42:绿

43:黄色

44:蓝色

45:紫色

46:深绿

47:白色

字颜色:30-----------39

30:黑

31:红

32:绿

33:黄

34:蓝色

35:紫色

36:深绿

37:白色

另外,同类的多种设置项可以组合在一起,中间用分号(;)隔开。

如下:


  echo -e "33[20;1H33[1;4;32mHello,world33[0m"

这行命令首先33[20;1H将光标移动到终端第20行第1列,之后的33[1;4;32m将文本属性设置为高亮、带下划线且颜色为绿色,然后输出Hello,world;最后33[0m将终端属性恢复为默认值,这样就不会看到连命令完成后的命令提示符也变了样儿了。

通过以上各种命令的组合就可以实现对终端输出地复杂控制。

二、如何在C编程中实现?

理解了以上在Shell中的实现方法,关于在C中如何实现就很简单了。可以说只需要用printf函数代替上边的echo -e就OK了参见下例:


  int color = 32;

  printf("33[20;1H33[1;4;%dmHello, world.33[0m", color);

这个例子类似上边shell中最后那个例子,只是这里颜色值通过变量color来指定(当然,也可以直接指定)。

三、联想

看到这里你可能会想,是不是在其他编程语言里也可以用类似的方法实现对终端输出的控制呢?答案是肯定的!比如在python中,可以如下输出:


  color=32

  print “33[20;1H33[1;4;%dHello, world.33[0m"%color

这个例子的效果跟上边C的例子是相同的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

--结束END--

本文标题: 深入理解Shell输出颜色与控制

本文链接: https://www.lsjlt.com/news/18995.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 深入理解Shell输出颜色与控制
    前言 大家都知道使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本输出呢?答案并不复杂,不管是用shell还是C语言。 一、shell下的实现方法 先来讲在shell...
    99+
    2022-06-04
    颜色 Shell
  • 如何理解Shell输出颜色与控制
    本篇文章为大家展示了如何理解Shell输出颜色与控制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。大家都知道使用ls命令列出文件列表时,不同的文件类型会用不同的颜色显示。那么如何实现这样带颜色的文本...
    99+
    2023-06-09
  • 控制输出颜色的shell脚本
    实现代码: #!/bin/sh # ANSI Color -- Use these variables to make output in different colors # and formats...
    99+
    2022-06-04
    脚本 颜色 shell
  • 如何实现控制输出颜色的shell脚本
    小编给大家分享一下如何实现控制输出颜色的shell脚本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!实现代码:#!/bin/sh# ANSI ...
    99+
    2023-06-09
  • Java在控制台输出带颜色字符的2种方式详解
    目录通过\033特殊转义符实现Linux中的测试效果IDEA 中的测试效果Windows控制台测试结果通过org.fusesource.jansi实现Windows控制台测试结果Li...
    99+
    2022-11-12
  • 深入理解 MySQL ——锁、事务与并发控制
    本文首发于vivo互联网技术微信公众号作者:张硕本文对 MySQL 数据库中有关锁、事务及并发控制的知识及其原理做了系统化的介绍和总结,希望帮助读者能更加深刻地理解 MySQL 中的锁和事务,从而在业务系...
    99+
    2022-10-18
  • C语言详解格式控制符scanf与printf的输入输出
    目录一、使用scanf输入和printf输出1、scanf的使用2、printf的使用二、常用输出格式1、%md2、%0md3、%.mf三、使用getchar输入putchar输出单...
    99+
    2022-11-13
  • 深入浅出讲解Spring框架中依赖注入与控制反转及应用
    目录概念:使用对比1. 使用前:2. 使用后:理解控制反转(Ioc):IoC的应用方法 概念:      依赖注入(Dependency In...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作