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