[Linux]屏幕输出控制

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

主要有以下类别:

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

以上控制符主要通过echo进行输出,其中Esc不是三个字母,而是ASCII的ESC字符'\033'或者'\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

转载于:https://www.cnblogs.com/SelaSelah/p/3475849.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值