美文网首页
bash脚本输出带颜色的字符串

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

作者: itsenlin | 来源:发表于2022-02-11 10:00 被阅读0次

    在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控制码,当前已经可以满足大部分需求,有需要的时候再补充

    相关文章

      网友评论

          本文标题:bash脚本输出带颜色的字符串

          本文链接:https://www.haomeiwen.com/subject/oprakrtx.html