Shell 小技巧 -- 原地更新终端输出信息 & 闪动效果 & 字体高亮
一、原地更新终端输出信息在使用 Linux 系统时会常常看到一些命令、程序脚本能够实时地刷新输出信息,而不是每次通过新的一行输出信息,这样我们就能够一方面动态地显示程序运行的进度,另一方面尽量地精简屏幕上的输出信息,从而使得我们对结果有更好的把握。要实现该功能,只需利用 \r 这个回车符即可。注意,Linux 环境下,回车的作用是将光标移到行首,而换行才是移到下一行。例子:#!/bin/bashf
·
一、原地更新终端输出信息
在使用 Linux 系统时会常常看到一些命令、程序脚本能够实时地刷新输出信息,而不是每次通过新的一行输出信息,这样我们就能够一方面动态地显示程序运行的进度,另一方面尽量地精简屏幕上的输出信息,从而使得我们对结果有更好的把握。要实现该功能,只需利用 \r
这个回车符即可。注意,Linux 环境下,回车的作用是将光标移到行首,而换行才是移到下一行。
例子:
#!/bin/bash
for i in {1..100}
do
printf "\rProcess: %3d" $i
sleep 1
done
二、设置闪动效果和字体高亮
该功能主要借助 shell 提供的字体颜色设置功能来实现,具体示例如下:
#!/bin/bash
# 定义颜色变量
RED='\E[1;31m' # 红
GREEN='\E[1;32m' # 绿
YELOW='\E[1;33m' # 黄
BLUE='\E[1;34m' # 蓝
PINK='\E[1;35m' # 粉红
SHAN='\E[33;5m' #黄色闪烁警示
RES='\E[0m' # 清除颜色
#用 echo -e 来调用
echo -e "${SHAN} this is yelow flashing warning ${RES}" # 黄色闪烁警示调用效果
echo -e "${GREEN} this is green color ${RES}"
echo -e "${YELOW} this is red yelow ${RES}"
echo -e "${BLUE} this is blue color ${RES}"
echo -e "${PINK} this is pink color ${RES}"
结合原地更新,一个完整版例子(原地输出亮绿色闪动效果)如下:
#!/bin/bash
GREEN_SHAN='\E[5;32;49;1m' # 亮绿色闪动
RES='\E[0m' # 清除颜色
for i in {1..100}
do
printf "\r${GREEN_SHAN} Process: %3d ${RES}" $i
sleep 1
done
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献6条内容
所有评论(0)