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