zoukankan      html  css  js  c++  java
  • 控制Linux终端输出的颜色和显示方式

    转义序列

    终端输出的颜色由转义序列控制, 转义序列以控制字符串"ESC"开头, ASCII码对应的十进制是27, 十六进制是0x1B, 八进制是033. 转义序列以"ESC"和左括号"["开头, 以"m"结尾:

    33[ Param {;Param;...}m
    或
    e[ Param {;Param;...}m
    

    其中,'33['或'e['引导转义序列,'m'表示设置属性并结束转义序列。Param为属性值,{...}表示可选(多个参数之间用分号隔开,与顺序无关)

    转义序列格式

    33[显示方式;前景色;背景色m输出字符串33[0m
    
    e[显示方式;前景色;背景色m输出字符串e[0m
    

    其中 ,'33[0m'和'e[0m'用于恢复默认的终端输出属性,否则会影响后续的输出。

    显示:0(默认)、1(粗体/高亮)、22(非粗体)、4(单条下划线)、24(无下划线)、5(闪烁)、25(无闪烁)、7(反显、翻转前景色和背景色)、27(无反显)

    颜色:0(黑)、1(红)、2(绿)、 3(黄)、4(蓝)、5(洋红)、6(青)、7(白)

    前景色为30+颜色值,如31表示前景色为红色;背景色为40+颜色值,如41表示背景色为红色

    常用格式宏

    #define NONE                 "e[0m"
    #define BLACK                "e[0;30m"
    #define L_BLACK              "e[1;30m"
    #define RED                  "e[0;31m"
    #define L_RED                "e[1;31m"
    #define GREEN                "e[0;32m"
    #define L_GREEN              "e[1;32m"
    #define BROWN                "e[0;33m"
    #define YELLOW               "e[1;33m"
    #define BLUE                 "e[0;34m"
    #define L_BLUE               "e[1;34m"
    #define PURPLE               "e[0;35m"
    #define L_PURPLE             "e[1;35m"
    #define CYAN                 "e[0;36m"
    #define L_CYAN               "e[1;36m"
    #define GRAY                 "e[0;37m"
    #define WHITE                "e[1;37m"
    
    #define BOLD                 "e[1m"
    #define UNDERLINE            "e[4m"
    #define BLINK                "e[5m"
    #define REVERSE              "e[7m"
    #define HIDE                 "e[8m"
    

    Sample

    #define LOG_END "e[0m"
    #define LOG_RED "e[0;31m"
    #define LOG_GREEN "e[0;32m"
    #define LOG_L_GREEN "e[1;32m"
    #define LOG_YELLOW "e[1;33m"
    
    #define PRINT(err, fmt, ...)                                                                          
        fprintf(stderr, LOG_RED "[%s:%d:%s] " fmt "
    " LOG_END, __FILE__, __LINE__, err, ##__VA_ARGS__);
    
    #define LOGE(fmt, ...) { 
        fprintf(stderr, LOG_RED "[%s:%d:%s] " fmt "
    " LOG_END, __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__); 
    }
    
    #define LOGD(fmt, ...) { 
        fprintf(stdout, LOG_GREEN "[%s:%d:%s] " fmt "
    " LOG_END, __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__); 
    }
    
    #define LOGW(fmt, ...) { 
        fprintf(stdout, LOG_YELLOW "[%s:%d:%s] " fmt "
    " LOG_END, __FILE__, __LINE__, __FUNCTION__, ##__VA_ARGS__); 
    }
    
    
  • 相关阅读:
    SuperMap开发入门1——资源下载
    去除Win10快捷图标小箭头
    MongoTemplate 分组分页复合条件查询
    mongo db 去除 _class 字段
    MongoDb 快速翻页方法
    mysql select limit 大数据量查询 性能终极提升方法
    MongoDB 数据自动同步到 ElasticSearch
    用 mongodb + elasticsearch 实现中文检索
    MySql5.7InnoDB全文索引(针对中文搜索)
    spring cloud fegin传递request header
  • 原文地址:https://www.cnblogs.com/cristiano-duan/p/13302718.html
Copyright © 2011-2022 走看看