shell脚本实现多彩进度条

转载 lishitao_578 2019/7/10 21:39:43

这篇文章主要介绍了shell脚本实现多彩进度条的相关资料,需要的朋友可以参考下

先贴代码

#!/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脚本实现多彩进度条,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对找一找教程网网站的支持!

上一篇:Linux C中多线程与volatile变量

下一篇:Linux 中wget命令详细介绍

赞(0)

共有 条评论 网友评论

验证码: 看不清楚?
    扫一扫关注最新编程教程