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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章