Linux终端动态刷新
一、代码片段
text1 2 3 4 5 6 7 8 9 10 11 12
| void CStat::runtimePrintBuf(std::vector<std::string> &buf){ static int last_print_lines = 0; for(int i = 0; i < last_print_lines; ++i){ printf("\033[1A"); //先回到上一行 printf("\033[K"); //清除该行 } last_print_lines = buf.size();
for(const std::string &it : buf){ printf("%s\n", it.c_str()); } }
|
二、相关知识
2.1 终端颜色字符
text1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # 字体颜色控制 echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \033[0m" echo -e "\033[32m 绿色字 \033[0m" echo -e "\033[33m 黄色字 \033[0m" echo -e "\033[34m 蓝色字 \033[0m" echo -e "\033[35m 紫色字 \033[0m" echo -e "\033[36m 天蓝字 \033[0m" echo -e "\033[37m 白色字 \033[0m"
# 字体背景颜色和字体颜色 echo -e "\033[40;37m 黑底白字 \033[0m" echo -e "\033[41;37m 红底白字 \033[0m" echo -e "\033[42;37m 绿底白字 \033[0m" echo -e "\033[43;37m 黄底白字 \033[0m" echo -e "\033[44;37m 蓝底白字 \033[0m" echo -e "\033[45;37m 紫底白字 \033[0m" echo -e "\033[46;37m 天蓝底白字 \033[0m" echo -e "\033[47;30m 白底黑字 \033[0m"
|
2.2 终端控制字符
text1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| \33[0m 关闭所有属性 \33[1m 设置高亮度 \33[4m 下划线 \33[5m 闪烁 \33[7m 反显 \33[8m 消隐 \33[30m — \33[37m 设置前景色 \33[40m — \33[47m 设置背景色 \33[nA 光标上移n行 \33[nB 光标下移n行 \33[nC 光标右移n行 \33[nD 光标左移n行 \33[y;xH设置光标位置 \33[2J 清屏 \33[K 清除从光标到行尾的内容 \33[s 保存光标位置 \33[u 恢复光标位置 \33[?25l 隐藏光标 \33[?25h 显示光标
|
在C语言中使用终端控制字符,如上代码片段所示
text1 2
| printf("\033[1A"); //先回到上一行 printf("\033[K"); //清除该行
|
三、参考
【0】shell脚本中echo显示内容带颜色
原文链接: https://www.delta1037.cn/2020/Linux/Linux终端动态刷新/
版权声明: 转载请注明出处.