zoukankan      html  css  js  c++  java
  • [Linux]屏幕输出控制

    专门的术语叫做ANSI Escape sequences(ANSI Escape codes),题目并不恰当,与其说是屏幕输出控制,不如说是通过bash在兼容VT100的终端上进行输出。

    主要有以下类别:

    Esc[Value;...;Valuem -- 控制输出效果
    Esc[Line;ColumnH
    Esc[Line;Columnf -- 更改光标位置

    以上控制符主要通过echo进行输出,其中Esc不是三个字母,而是ASCII的ESC字符'33'或者'E',需要进行转义。

    因为echo分为系统程序和bash的builtin等等,实现略有差异。有的echo需要使用-e参数,有的echo不支持'E'转义,需要用户自行判别。

    此外其他可以向终端输出的程序,理论上也可以使用这些控制符,例如C语言的printf,python的print等等,不再赘述。

    1. 控制输出效果

    Esc[Value;...;Valuem

    Value控制各种效果,例如前景色、背景色、粗体等等,可以在单个 Esc[Value;...;Valuem 中组合多个Value,也可以连续使用多个 Esc[Value;...;Valuem 进行。同类别的Value,后者覆盖前者。

    一个例外是 Esc[0m,Value=0并且不与其他设置相组合,此时不仅仅覆盖同组的设置,还会清除之前的所有设置。Value列表如下:

    Value 含义
    关闭所有效果
    0 关闭所有效果
    1 粗体
    2 暗色
    4 下划线
    5 (闪烁)*
    7 反相
    8 隐藏(隐藏)

    注:很多终端下闪烁无效

    Value 含义 Value 含义
    30 前景色黑色 40 背景色黑色
    31 前景色红色 41 背景色红色
    32 前景色绿色 42 背景色绿色
    33 前景色黄色 43 背景色黄色
    34 前景色蓝色 44 背景色蓝色
    35 前景色品红 45 背景色品红
    36 前景色青色 46 背景色青色
    37 (前景色白色) 47 背景色白色

    2. 控制光标位置

    Esc[Line;ColumnH
    Esc[Line;Columnf

    更改光标的位置,行与列均从0开始。Line或者Column留空表示0

  • 相关阅读:
    cookie包含中文导致的问题
    Mysql date_sub函数使用
    mysql 忘记root密码修改方法
    你所知道的Java单例模式并不是单例模式
    cookie与sessionID之间的关系实验
    Cookie实例,理解cookie
    spring项目中使用定时任务
    Jsp开发自定义标签,自定义标签将字符串转成指定的时间格式显示
    Java 生成压缩包,ZipOutputStream的使用
    Spring的web应用启动加载数据字典方法
  • 原文地址:https://www.cnblogs.com/SelaSelah/p/3475849.html
Copyright © 2011-2022 走看看