先貼代碼
#!/bin/bashi=0;str=""arr=("|" "/" "-" "http://")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+='='doneprintf "/n"沒錯(cuò)代碼就這么簡(jiǎn)單 其實(shí)前面的都差不多就是下面的輸出時(shí)顏色控制線面我們就介紹一下顏色控制的原理
終端的字符顏色由轉(zhuǎn)義序列(Escape Sequence)控制,是文本模式下的系統(tǒng)顯示功能,與具體語(yǔ)言無(wú)關(guān)。轉(zhuǎn)義序列以控制字符'ESC'開頭。該字符的ASCII碼十進(jìn)制表示為27,十六進(jìn)制表示為0x1B,八進(jìn)制表示為033。多數(shù)轉(zhuǎn)義序列超過兩個(gè)字符,故通常以'ESC'和左括號(hào)'[‘開頭。該起始序列稱為控制序列引導(dǎo)符(CSI,Control Sequence Intro),通由‘/033['或‘/e['代替。
通過轉(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)隔開,與順序無(wú)關(guān))。 轉(zhuǎn)義序列相關(guān)的常用參數(shù)如下(通過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)由自己編寫,有問題請(qǐng)?jiān)u論
以上所述是小編給大家介紹的shell腳本實(shí)現(xiàn)多彩進(jìn)度條,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)武林網(wǎng)網(wǎng)站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選