zoukankan      html  css  js  c++  java
  • 使用ANSI改变终端输出样式

      默认情况下程序输出到终端的字符样式为白字黑背景,样式、字体比较单一。如想改变程序输出到终端字符的样式等可使用ANSI转移码使其输出具有不同样式;

    ANSI转义序

      ANSI转义序列包括这三个部分组成:前置引导,CSI转义序列,结束符号
    1、前置引导: 为ESC的ASCII值(33,x1b),标志此为控制命令,此时终端不会把后续当字符串解释,shell下可用e标识。
    2、CSI转义序列:
      控制输出样式,颜色、光标、下划线等
      CSI转义序列由 [CSI序列;结束符 组成。
      CSI序列包括:< PREFIX>;< COLOR>;< TEXT DECORATION> 三部分组成,分别为:
      前缀;颜色;文本修饰器
      文本修饰器:加粗 1,下划线 4,闪烁 5 前缀:颜色模式 16色,256色
      颜色: 31-37 字体颜色、41-47 背景颜色

    颜色代码:
      0:黑色,1:红色,2:绿色,3:黄色,4:深蓝色,5:紫色,6:浅蓝色,7:白色
      上述代码+30为字体颜色,代码+40为背景颜色;
    例如:
      [33;1m:
    表示:黄色;下划线
    3、结束符: m
      结束符号m: 控制字符结尾,[0m :没有特殊参数的CSI序列,通知终端恢复正常,0m 关闭所有属性;
    示例:
      echo -e "x1b[33;1m字体x1b[0m"
    终端输出的字符为:黄色加粗字体

    在Golang中的使用:

     func main() {
       fmt.Printf("%c[33;1m黄色字体加粗%c[0m
    ", 0x1B, 0x1B)
       fmt.Printf("%c[33;4m黄色字体下划线%c[0m
    ", 0x1B, 0x1B)
       fmt.Printf("%c[42;30;1m绿色背景黑色字体下划线%c[0m
    ", 0x1B, 0x1B)
     }
    

    程序输出如图所示:

  • 相关阅读:
    集合类
    对象数组的练习已经对象数组的内存图
    String字符串的遍历
    About me-关于我
    工作两周年总结
    hackrf搭配gr-mixalot唤醒沉睡多年的BP机
    电视机为什么会收到邻居游戏机画面?
    分析无线遥控器信号并制作 Hack 硬件进行攻击
    使用 Arduino 和 RC Switch 逆向遥控器
    解码无线遥控器信号的 N 种方法
  • 原文地址:https://www.cnblogs.com/softlin/p/15140919.html
Copyright © 2011-2022 走看看