如何美化linux终端输出
我以前写过一篇文章Linux C/C++ 如何输出彩色字体
点击链接即可传送
这里我再加两个常用的控制字符\n
和\r
有人会问,这两个不久换行符嘛,有什么好讲的。其实不然。
系统 | 终端换行符 |
---|---|
Windows |
\r\n
|
Linux |
\n
|
Mac OS |
\r
|
有人又会问,不对呀,我在C/C++中都用\n
作换行符的,怎么没报错?其实编译器作了特殊优化。
那么\r
和\n
到底有什么区别呢?
\r
代表光标移动到行首,\n
代表光标向下移动
看到这里,我想大家也明白了,Windows的换行符是最标准的
先将光标移动至行首,再下移一行
但我的重点不是换行符,而是\r
有的人可能知道退格符\b
,意思是把光标倒退一格
这个控制字符在一些情况下十分有用,比如vim
八成是这么干的,但如果要显示进度条,怎么退到行首呢?
这个时候,\r
登场了。终端对输出的处理是覆盖本行后面的字符(如果有的话)
于是只要新的输出大于等于原来的输出,就可以做到更新进度条。
std::cout << "Hello world!\rThis is a new sentence!" << std::endl;
这句话输出很明显,应该是This is a new sentence!
但如果换一个,std::cout << "Hello world!\rHello!" << std::endl;
你会发现,输出不是Hello!
而是Hello!world!
因为终端不会把本行的所有字符都删除,而是用类似Insert的模式去输出。
那么这个时候,打开Linux C/C++ 如何输出彩色字体,找到\033[K
这一行,这个控制字符串就可以帮助你删除本行光标后的内容,可以配合\r
使用(仅限于Linux,对于其他操作系统,会将那一串全部输出)
到这里,进度条已经可以实现了。但是我在测试的时候发现了问题,因为更新过于频繁,会导致光标不断在那一行闪动,影响视觉效果。这个时候,再次点击传送门,发现控制字符串\033[?25l
可以隐藏光标,而控制字符串\033[25h
可以重新显示。这就非常好了,只要在输出的开始时隐藏光标,在结束时显示光标就行了。
那么至此,你结合表格(传送门内),就可以实现apt
的进度条了(Progress
那个只需要在输出开始先光标下移\n
,在输出结束光标上移\033[1A
就行了)
如何美化linux终端输出相关推荐
- 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量...
背景 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ...
- linux终端用什么颜色好,linux 终端输出颜色
在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出信息对比鲜明,便于调试时观察数据. 终端的字符颜色由转义序列(Escape Sequence)控制,是文本模式 ...
- linux终端输出c语言程序,Linux终端程序用c语言实现改变输出的字的颜色
颜色代码: 格式: echo "\033[字背景颜色;字体颜色m字符串\033[0m" 例如: echo "\033[41;36m something here \033 ...
- 通过printf设置Linux终端输出的颜色和显示方式
前言 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出信息对比鲜明,便于调试时观察数据. 终端的字符颜色由转义序列(Escape Sequence)控制,是文 ...
- linux 屏幕输出 高亮_通过printf设置Linux终端输出的颜色和显示方式
转载自:http://www.cnblogs.com/clover-toeic/p/4031618.html 在Linux终端下调试程序时,有时需要输出大量信息.若能控制字体的颜色和显示方式,可使输出 ...
- linux终端提示语,美化Linux终端和Shell提示符
导读 在本文中,我们将展示一些简单而有趣的Linux技巧来,我们将展示如何使您的终端和shell具有漂亮字符功能.在本指南的最后,您将了解如何使用Bash变量和转义字符自定义shell提示符. 在Ba ...
- Linux终端输出echo各种颜色的ziti
#!/bin/bash # #下面是字体输出颜色及终端格式控制 #字体色30-37 echo -e "\033[30m黑色字\033[0m" echo -e "\033[ ...
- Linux终端输出链接
bash或zsh会自动解析带有http/https开头的,当有这类开头的字符,会自动区分,当鼠标上去会呈现出手模型,并且可以右键打开链接: 实现方法: echo -e "\033[4mwww ...
- linux美化文件,Linux 终端美化 - Oh My Zsh
[TOC] 前言 在类 UNIX 系统(比如 Linux,Mac)环境中,我们常常在终端中输入命令与系统进行交互,大多数系统默认使用的 shell 程序为 Bash. 但是 Bash 本身的色调非常单 ...
最新文章
- git误删文件找回方法/git版本回退方法
- 集存款(复利单利)贷款为一体的计算器(最新版)
- flask框架(十): 闪现
- spring是如何管理 事务的
- 天池 在线编程 最大子树(自底向上)
- x264中I,P,B帧和PTS,DTS的关系
- ubuntu 14.04.03 LTS(64bit) 安装PyCharm
- oracle复制表结构与表数据
- 条款4:确定对象被使用前已被初始化(Make sure that objects are initialized before they're used)...
- PAIP.获取RSS全文输出.txt
- MATLAB(四) 图像处理--对象分析与属性
- Android WebView下载使用教程
- 商城项目 ------ 订单的生成功能(vue实现)
- 实用的bi报表工具--Smartbi报表软件
- 新媒体运营学习路线及全套视频教程资源
- 6580 8.1 mtp模式,查看手机容量大小修改
- 环回接口是做什么的?
- pip显示网络不可达错误解决
- 【ACWing】1063. 永无乡
- 考研小作文万能模板——17篇
热门文章
- 三十七、下篇 | tkinter实现一个翻译软件
- 手把手教你薅羊毛,1 元体验业内领先AI技术!
- AAAI 2020 开源论文 | 语义感知BERT(SemBERT)
- 知识工场 | 知识图谱暑假班开始报名啦!
- 北理工2017年爬虫目录
- 算法分析与设计-实验四 回溯算法设计
- java 继承与派生4.6-4.7 2020.3.27
- linux设置esp8266默认网卡,ESP8266 Linux开发环境搭建
- python gis 经纬度 库_入门-Python-GIS坐标转换
- VSCode 报错 Parsing error: x-invalid-end-tag