Linux终端彩色字符的输出方法

5 篇文章 0 订阅
1 篇文章 0 订阅

虽然大部份的Linux发行版本都附有一个用来把目录的内容列出来,而且可以利用彩色来增强输出在视觉上的效果的'ls'指令,不过要把他设定的合你意却不是件容易的事。这份文件说明了设定一些已经内附在你的Linux发行版本的软体,来达到这个目地的好几种不同的方法。

在ANSI 兼容终端(例如 xterm、rxvt、konsole 等)里,可以用彩色显示文本而不仅仅是黑白。但是我们自己编写的程序能否输出彩色的字符呢?当然答案是肯定的。下面的语句就输出高亮的黑色背景的绿色字。

\033 声明了转义序列的开始,然后是 [ 开始定义颜色。后面的 1 定义了高亮显示字符。然后是背景颜色,这里面是40,表示黑色背景。接着是前景颜色,这里面是32,表示绿色。我们用 \033[0m 关闭转义序列, \033[0m 是终端默认颜色。

通过上面的介绍,就知道了如何输出彩色字符了。因此,我就不再多说了。下面是对于彩色字符颜色的一些定义:

 

前景 背景颜色

---------------------

30 40 黑色

31 41 紅色

32 42 綠色

33 43 黃色

34 44 藍色

35 45 紫紅色

36 46 青藍色

37 47 白色

 

代码 意义

---------------------

0 终端默认设置

1 高亮显示

4 使用下划线

5 闪烁

7 反白显示

8 不可见

 

下面给出了一个C语言的示例:

#include <stdio.h>
 
int main(int argc,char **argv)
{
  unsigned char attr[]={0,1,4,5,7,8};
  unsigned charfore[]={30,31,32,33,34,35,36,37};
  unsigned char back[]={40,41,42,43,44,45,46,47};
  int adx,fdx,bdx;
 
  for(bdx=0;bdx <sizeof(back);bdx )
  {
    for(fdx=0;fdx <sizeof(fore);fdx )
    {
      for(adx=0;adx <sizeof(attr);adx )
      {
        printf("\033[%d;%d;%dmhello,NSFocus!!!\033[0m",
        attr[adx],fore[fdx],back[bdx]);
        printf("<==attr=%d,fore=%d,back=%d\n",
        attr[adx],fore[fdx],back[bdx]);
      }
    }
    printf("\n");
  }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值