shell输出颜色

Posted 大飞歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell输出颜色相关的知识,希望对你有一定的参考价值。

1.echo开启彩色输出:

  -e 开启echo中的转义;

  \\e或者\\033来输出Esc颜色;

  恢复默认颜色为:\\e[0m;

  命令格式:

    echo -e "\\e[字背景颜色;文字颜色m字符串\\e[0m"

    echo -e  "\\e[字背景颜色;文字颜色;文字闪动m字符串\\e[0m"

 

参考:man.linuxde.net/echo

 

 

字体背景颜色

40:黑   41:深红  42:绿 43:黄色  44:蓝色  45:紫色  46:深绿  47:白色

字体颜色

30:黑  31:红  32:绿  33:黄  34:蓝色  35:紫色  36:深绿  37:白色

控制码

这里常用有 设置高亮度/下划线/闪烁/关闭所有属性

\\33[0m 关闭所有属性 
\\33[01m 设置高亮度 
\\33[04m 下划线 
\\33[05m 闪烁 
\\33[07m 反显 
\\33[08m 消隐 
\\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 显示光标

格式如下:
  
printf("\\033[字背景颜色;字体颜色m 字符串 \\033[0m" );
 
例子:
printf("\\033[1m\\033[45;33m HELLO_WORLD \\033[0m\\n");
 
 
颜色代码: QUOTE: 
字背景颜色范围: 40--49                   字颜色: 30—39             
 40: 黑                           30: 黑                 
 41: 红                           31: 红                
 42: 绿                           32: 绿                
 43: 黄                           33: 黄                
 44: 蓝                           34: 蓝               
 45: 紫                           35: 紫                 
 46: 深绿                       36: 深绿                 
 47: 白色                       37: 白色
ANSI控制码:
 QUOTE: 
   \\033[0m   关闭所有属性      
   \\033[1m   设置高亮度      
   \\033[4m   下划线      
   \\033[5m   闪烁      
   \\033[7m   反显      
  \\033[8m   消隐    
  \\033[30m   --   \\033[37m   设置前景色     
  \\033[40m   --   \\033[47m   设置背景色      
  \\033[nA   光标上移n行     
  \\03[nB   光标下移n行      
  \\033[nC   光标右移n行     
  \\033[nD   光标左移n行
 

  

在ANSI终端下可以显示彩色代码:

如 printgf(“33[01;40;32m HELLO 33[01;40;37m”); 能显示绿色的HELLO字样。

     printf("\\033[0;32mPASSED\\033[0;0m\\n"); 
    printf("\\033[0;31mFAILED\\033[0;0m\\n"); 

这里33[是转义子列,表示后面接的是颜色代码。 

01是高亮度,不写是低亮度。

40是背景色,40:黑,41:红:42:绿,43:黄,44:青,45:蓝,47:白。 

32m是前景色:30:黑,31:红,32:绿,33:黄,34:蓝,35:紫,36:青,37:白。

实例:printf("\\033[1;33m Hello World. \\033[0m \\n");

\\033      [1;        33m           xxxx

|          |          |             |

开始    背景色      字体色        字符串

一些常见的颜色代码:

none         = "\\033[0m"
black        = "\\033[0;30m"
dark_gray    = "\\033[1;30m"
blue         = "\\033[0;34m"
light_blue   = "\\033[1;34m"
green        = "\\033[0;32m"
light_green -= "\\033[1;32m"
cyan         = "\\033[0;36m"
light_cyan   = "\\033[1;36m"
red          = "\\033[0;31m"
light_red    = "\\033[1;31m"
purple       = "\\033[0;35m"
light_purple = "\\033[1;35m"
brown        = "\\033[0;33m"
yellow       = "\\033[1;33m"
light_gray   = "\\033[0;37m"
white        = "\\033[1;37m"

 

 

#define NONE        "\\e[m"
#define RED            "\\e[0;31m"
#define GREEN        "\\e[0;32m"
#define YELLOW        "\\e[0;33m"
#define BLUE        "\\e[0;34m"

以上是关于shell输出颜色的主要内容,如果未能解决你的问题,请参考以下文章

shell 脚本 编辑颜色代码

如何去掉控制台上输出的这些日志

shell 带颜色输出

emacs 去除 shell 中的所有 ansi 颜色代码

shell脚本 echo命令的颜色显示

shell输出颜色