先貼代碼
#!/bin/bash
i=0;
str=""
arr=("|" "/" "-" "\\")
while [ $i -le 100 ]
do
let index=i%4
let indexcolor=i%8
let color=30+indexcolor
printf "\e[0;$color;1m[%-100s][%d%%]%c\r" "$str" "$i" "${arr[$index]}"
sleep 0.1
let i++
str+='='
done
printf "\n"
沒錯代碼就這么簡單 其實前面的都差不多就是下面的輸出時顏色控制線面我們就介紹一下顏色控制的原理
終端的字符顏色由轉義序列(Escape Sequence)控制,是文本模式下的系統顯示功能,與具體語言無關。轉義序列以控制字符'ESC'開頭。該字符的ASCII碼十進制表示為27,十六進制表示為0x1B,八進制表示為033。多數轉義序列超過兩個字符,故通常以'ESC'和左括號'[‘開頭。該起始序列稱為控制序列引導符(CSI,Control Sequence Intro),通由‘\033['或‘\e['代替。
通過轉義序列設置終端顯示屬性時,可采用以下格式:
\033[ Param {;Param;…}m 或 \e[ Param {;Param;…}m
其中,‘\033['或‘\e['引導轉義序列,‘m'表示設置屬性并結束轉義序列。Param為屬性值,{…}表示可選(多個參數之間用分號隔開,與順序無關)。 轉義序列相關的常用參數如下(通過man console_codes命令可查看更多的參數描述):
顯示: 0(默認)、1(粗體/高亮)、22(非粗體)、4(單條下劃線)、24(無下劃線)、5(閃爍)、25(無閃爍)、7(反顯、翻轉前景色和背景色)、27(無反顯)
顏色: 0(黑)、1(紅)、2(綠)、 3(黃)、4(藍)、5(洋紅)、6(青)、7(白)
前景色為30+顏色值,如31表示前景色為紅色;背景色為40+顏色值,如41表示背景色為紅色。
設置格式:
\033[顯示方式;前景色;背景色m輸出字符串\033[0m 或
\e[顯示方式;前景色;背景色m輸出字符串\033[0m
部分內容來自網絡,代碼來由自己編寫,有問題請評論
以上所述是小編給大家介紹的shell腳本實現多彩進度條,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
您可能感興趣的文章:- 提高你工作效率的shell命令總結大全
- shell腳本學習之調用腳本將文件打包zip的方法示例
- Linux下NC反彈shell命令(推薦)
- shell如何記錄用戶的IP與命令詳解
- shell腳本實現多進程運行的方法示例
- Shell腳本經典之Fork炸彈的分析與預防
- 詳解Linux Shell 實現一個獲取任意位數的隨機密碼的腳本