bash脚本输出带颜色的字符串

2022-02-11  本文已影响0人  itsenlin

在linux下工作学习时,使用最多的就是bash脚本,很多时候要输出一些信息,为了更容易处理输出的信息,可以在输出时显示成不同的颜色
linux下的echo命令提供了一个简单好用的方法来实现

实例

先来一个例子直观的感受一下


image.png

echo

在linux下,通过man命令可以查看echo命令的帮助信息,如下

ECHO(1)                                                                                       User Commands                                                                                      ECHO(1)

NAME
       echo - display a line of text

SYNOPSIS
       echo [SHORT-OPTION]... [STRING]...
       echo LONG-OPTION

DESCRIPTION
       Echo the STRING(s) to standard output.

       -n     do not output the trailing newline

       -e     enable interpretation of backslash escapes

       -E     disable interpretation of backslash escapes (default)

       --help display this help and exit

       --version
              output version information and exit

       If -e is in effect, the following sequences are recognized:

       \\     backslash

       \a     alert (BEL)

       \b     backspace

       \c     produce no further output

       \e     escape

       \f     form feed

       \n     new line

       \r     carriage return

       \t     horizontal tab

       \v     vertical tab

       \0NNN  byte with octal value NNN (1 to 3 digits)

       \xHH   byte with hexadecimal value HH (1 to 2 digits)

       NOTE: your shell may have its own version of echo, which usually supersedes the version described here.  Please refer to your shell's documentation for details about the options it supports.

这里要使用-e选项,即“使能对反斜杠转义的解析”,我们在使用echo命令输出信息时,就是通过特殊的转义字符来实现的字符串带颜色

转义说明

实例中看到echo输出的字符串中的开头和结尾都出现了一些特殊符号,这些就是特殊的转义字符,
用于在字符显示系统中控制光标移动和字符色彩的特殊转义控制也称为ANSI控制码,以ESC[开头,后面跟不同的控制码,而ESC要使用\033或者\e来实现

显示字符属性控制码

控制码 说明
[n1;n2;......m 设定显示字符的属性状态。若有两个以上设定则以分号将代码(n1;n2;..)隔开除非重新设定,否则原设定之属性一直被保留。

其中n1; n2等代码分为两种

表示颜色的代码

字体颜色代码 字符背景颜色代码 颜色
30 40 黑色
31 41 红色
32 42 绿色
33 43 黄色
34 44 蓝色
35 45 紫红色
36 46 青蓝色
37 47 白色

上面实例中使用的\e[31m就是表示后面字符串显示为红色

特殊代码

代码 含义
0 所有属性 OFF,即返回正常显示模式 (Normal)
1 高亮度显示 (Bright)
4 加下划线 (Underline)
5 闪烁显示 (Flash)
7 反相显示 (Inverse)
8 不可见 (Invisable)

上面实例中使用的\e[0m就是表示关闭控制,返回正常显示模式,如果不关闭的话,后面所有显示都会以前面设置的控制显示,如下

image.png

增加下划线实例如下


image.png

还有一些其他的一些ANSI控制码,当前已经可以满足大部分需求,有需要的时候再补充

上一篇下一篇

猜你喜欢

热点阅读