• Shell~echo -e 颜色输出


    echo -e 可以控制字体颜色和背景颜色输出

     从一个例子开始:

    # echo -e "e[1;33;41m test content e[0m"

    输出效果:

    1. e 转义起始符,定义一个转义序列, 可以使用 33代替
    2. [ 表示开始定义颜色
    3. 1表示高亮,33表示字体颜色为黄色,45表示背景色为红色
    4. “test content” 属于文字内容
    5. m 转义终止符,表示颜色定义完毕
    6. 再次使用 e[ ,表示再次开启颜色定义,0表示使用默认的颜色,m表示颜色定义结束,所以 e[0m 的作用是恢复之前的配色方案

    一、字体颜色

    字体颜色:30——37

    默认=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,紫色=35,天蓝色=36,白色=3

    [root@k8s-node02 test]# echo -e "e[30m test content黑 e[0m"
     test content黑 
    [root@k8s-node02 test]# echo -e "e[31m test content红 e[0m"
     test content红 
    [root@k8s-node02 test]# echo -e "e[32m test content绿 e[0m"
     test content绿 
    [root@k8s-node02 test]# echo -e "e[33m test content黄 e[0m"
     test content黄 
    [root@k8s-node02 test]# echo -e "e[34m test content蓝 e[0m"
     test content蓝 
    [root@k8s-node02 test]# echo -e "e[35m test content紫 e[0m"
     test content紫 
    [root@k8s-node02 test]# echo -e "e[36m test content天蓝 e[0m"
     test content天蓝 
    [root@k8s-node02 test]# echo -e "e[37m test content白 e[0m"
     test content白

    输出效果:

    二、字背景颜色

    字背景颜色:40——47

    默认=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,紫色=45,天蓝色=46,白色=47

    [root@k8s-node02 test]# echo -e "e[40m test content黑 e[0m"
     test content黑 
    [root@k8s-node02 test]# echo -e "e[41m test content红 e[0m"
     test content红 
    [root@k8s-node02 test]# echo -e "e[42m test content绿 e[0m"
     test content绿 
    [root@k8s-node02 test]# echo -e "e[43m test content黄 e[0m"
     test content黄 
    [root@k8s-node02 test]# echo -e "e[44m test content蓝 e[0m"
     test content蓝 
    [root@k8s-node02 test]# echo -e "e[45m test content紫 e[0m"
     test content紫 
    [root@k8s-node02 test]# echo -e "e[46m test content天蓝 e[0m"
     test content天蓝 
    [root@k8s-node02 test]# echo -e "e[47m test content白 e[0m"
     test content白 

     输出效果:

    三、黑底彩色

    黑底彩色:90——97


    黑=90 深红=91 绿=92 黄色=93 蓝色=94 紫色=95 深绿=96 白色=97

    [root@k8s-node02 test]# echo -e "e[90m test content黑 e[0m"
     test content黑 
    [root@k8s-node02 test]# echo -e "e[91m test content红 e[0m"
     test content红 
    [root@k8s-node02 test]# echo -e "e[92m test content绿 e[0m"
     test content绿 
    [root@k8s-node02 test]# echo -e "e[93m test content黄 e[0m"
     test content黄 
    [root@k8s-node02 test]# echo -e "e[94m test content蓝 e[0m"
     test content蓝 
    [root@k8s-node02 test]# echo -e "e[95m test content紫 e[0m"
     test content紫 
    [root@k8s-node02 test]# echo -e "e[96m test content天蓝 e[0m"
     test content天蓝 
    [root@k8s-node02 test]# echo -e "e[97m test content白 e[0m"
     test content白

    输出结果:

    四、字体控制选项:

    33[0m 关闭所有属性

    33[1m  设置高亮度

    33[4m  下划线

    33[5m  闪烁

    33[7m  反显,撞色显示,显示为白色黑底,或者显示为黑底白字

    33[8m  消影,字符颜色将会与背景颜色相同

    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 显示光标

    五、实例演示

    1.示例1:定义颜色变量

    # vim color_test1.sh

    #!/bin/bash
    # 定义颜色变量,033、e、E是等价的,都是转义起始符
    RED='e[1;31m'  # 红
    GREEN='e[1;32m'  # 绿
    YELLOW='33[1;33m'  # 黄
    BLUE='E[1;34m'  # 蓝
    PINK='E[1;35m'  # 粉红
    RES='33[0m'  # 清除颜色
    
    
    echo -e "${RED} Red ${RES}"
    echo -e "${YELLOW} Yellow ${RES}"
    echo -e "${BLUE} Blue ${RES}"
    echo -e "${GREEN} Green ${RES}"
    echo -e "${PINK} Pink ${RES}"

    # source color_test1.sh

     2.示例2:定义颜色动作

    # vim color_test2.sh

    #!/bin/bash
    # 定义颜色动作
    SETCOLOR_SUCCESS="echo -en \E[1;32m"
    SETCOLOR_FAILURE="echo -en \E[1;31m"
    SETCOLOR_WARNING="echo -en \E[1;33m"
    SETCOLOR_NORMAL="echo -en  \E[0;39m"
     
    # 使用时直接调用颜色动作,跟上相应的内容
    $SETCOLOR_SUCCESS && echo test1   
    $SETCOLOR_FAILURE && echo test2   
    $SETCOLOR_WARNING && echo test3   
    $SETCOLOR_NORMAL  && echo test4

    需要注意其中的一些细节:

    (1)需要增加-n选项,这样引用时不会出现换行的问题。
    (2)\本质是,在双引号中反斜线符号一定要写成\。
    (3)引用变量要放到其他语句前面,并使用&&连接。

    # source color_test2.sh

     

    六、tput命令

    tput 命令会利用 terminfo 数据库中的信息,来控制和更改我们的终端,比如控制光标、更改文本属性、控制屏幕,以及为文本涂色。

    其中,为文本涂色的方法是:

    1 tput setab:用于设置背景色
    2 tput setaf:用于设置前景色
    3 sgr0:表示颜色重置

    颜色定义如下:

    改写 实例演示中的 color_test1.sh

    #!/bin/bash
    # 定义颜色变量,033、e、E是等价的,都是转义起始符
    RED=$(tput setaf 1)  # 红
    GREEN=$(tput setaf 2)  # 绿
    YELLOW=$(tput setaf 3) # 黄
    BLUE=$(tput setaf 4)  # 蓝
    PINK=$(tput setaf 5)  # 粉红
    RES=$(tput sgr0)  # 清除颜色
    
    
    echo -e "${RED} Red ${RES}"
    echo -e "${YELLOW} Yellow ${RES}"
    echo -e "${BLUE} Blue ${RES}"
    echo -e "${GREEN} Green ${RES}"
    echo -e "${PINK} Pink ${RES}"

    # source color_test1.sh

  • 相关阅读:
    maven的安装步骤
    Sublime Text 3设置指南
    Eclipse 不同版本名称
    redis命令简单介绍
    redis简介与window安装:
    redis数据类型:String
    Mybatis-plus的使用步骤
    SpringgBoot父子工程的创建
    我的大学-易班
    IDEA:配置Tomcat并运行应用
  • 原文地址:https://www.cnblogs.com/ElegantSmile/p/11144879.html
Copyright © 2020-2023  润新知