Shell 小技巧 -- 原地更新终端输出信息 & 闪动效果 & 字体高亮

一、原地更新终端输出信息
在使用 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

Shell 小技巧 -- 原地更新终端输出信息 & 闪动效果 & 字体高亮_第1张图片

你可能感兴趣的:(Linux)