代码如下:

1 #!/bin/bash
2 i=0;
3 str=""
4 arr=("|" "/" "-" "\")
5 while [ $i -le 100 ]
6 do
7 let index=i%4
8 let indexcolor=i%8
9 let color=30+indexcolor
10 printf "\e[0;$color;1m[%-100s][%d%%]%c\r" "$str" "$i" "${arr[$index]}"
11 sleep 0.1
12 let i++
13 str+='='
14 done
15 printf "\n"

没错代码就这么简单 其实前面的都差不多就是下面的输出时颜色控制线面我们就介绍一下颜色控制的原理

终端的字符颜色由转义序列(Escape Sequence)控制,是文本模式下的系统显示功能,与具体语言无关。转义序列以控制字符'ESC'开头。该字符的ASCII码十进制表示为27,十六进制表示为0x1B,八进制表示为033。多数转义序列超过两个字符,故通常以'ESC'和左括号'[‘开头。该起始序列称为控制序列引导符(CSI,Control Sequence Intro),通由‘\033['或‘\e['代替。
通过转义序列设置终端显示属性时,可采用以下格式:
1 \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

原文地址:https://www.cnraksmart.com/206.html

转载于:https://blog.51cto.com/12421519/2094397

shell脚本如何实现多彩进度条相关推荐

  1. shell脚本实现一个彩色进度条

    一.进度条: 今天要实现的进度条呢,有以下几个需要关注的部分: ①首先是一个随时间递增的进度条显示.一个百分比显示和一个加载转动图标: ②今天的重点是将进度条彩色化,让它更漂亮一点,具体的方法是: 终 ...

  2. linux进度条脚本,Linux下简易进度条的实现代码

    在生活中,进度条是很常见的,那么,进度条是如何实现的呢? 首先,进度条的动态是利用人眼视觉暂留效果的.实际上是如下过程: 先输出:[=     ]表示进度是1%,刷新之后 再输出:[==    ].. ...

  3. shell脚本中等待上一条命令执行结束在执行下一条。

    首先了解下背景知识. 命令生效顺序 Linux系统下命令生效的顺序有以下4条: 绝对路径或相对执行的命令: 别名: Bash的内部命令: 按照$PATH环境变量定义的目录查找顺序搜到的第一个命令. 实 ...

  4. android进度条脚本,GEE引擎自定义进度条和自定义属性示例脚本..

    GEE引擎自定义进度条和自定义属性示例脚本.. [@main] #SAY \\ 自定义装备进度条 \\ 自定义装备属性 \\ ;==================================== ...

  5. shell脚本中判断上一条python命令执行情况

    shell脚本中判断python命令执行结果 python脚本main.py import sys def main():try:"执行相关操作"sys.exit(0)except ...

  6. bash给脚本加进度条_shell脚本实现多彩进度条

    代码如下: 1 #!/bin/bash 2 i=0; 3 str="" 4 arr=("|" "/" "-" " ...

  7. Shell脚本学习-阶段五-MYSQL101条调优

    文章目录-Shell阶段五-MYSQL调优技巧 前言 101个MySQL调试和优化技巧 MySQL 服务器硬件和操作系统调节: MySQL 配置: MySQL模式优化: 查询优化: MySQL 备份过 ...

  8. linux修改内核logo和增加开机进度条

    修改内核logo 1.将我们准备好的 logo-linux.png 图片拷贝到drivers/video/logo 这个目录下 2.我们需要把 png 格式的图片转换成 ppm 格式,安装sudo a ...

  9. redchat怎么编写shell脚本_shell脚本编写思路

    shell有两种执行命令的方式: 交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条. 批处理(Batch):用户事先写一个Shell脚本(Script) ...

最新文章

  1. mysql中的输出,mysql-将输出结果作为SQL中的列
  2. kafka消费者如何读同一生产者消息_Kafka消费者生产者实例
  3. windows下 sbulime text 安装less2css踩的几个坑
  4. 技术沙龙直播 | 数据库技术探索及行业应用
  5. mysql之慢查询详解,mysqldumpslow的使用
  6. 《网站情感化设计与内容策略》一第1章 情感化设计1.1 革命:有失亦有得
  7. (转)淘淘商城系列——Solr的安装
  8. html 滚动条处于页面底部,滚动条一直置于页面底部,开发聊天程序须知。
  9. es6继承 vs js原生继承(es5)
  10. 数据库基础:MySQL必备的三个工具
  11. linux,内核(kernel)对AD9371配置流程。
  12. xshell官网下载及安装(免费版本)
  13. 惠普HP2132打印机 803墨盒的简单加墨方法
  14. 计算机的基本配件图片,计算机硬件的重要部件
  15. python中欧拉-罗德里格斯的代码详解
  16. 记腾讯的暑期实习面试
  17. AARRR模型——揭开应用推广运营背后的秘密
  18. 微信小程序分析送积分功能如何实现_微信小程序积分商城系统如何裂变营销购物?...
  19. net core3.1 版本 解决错误 ConfigurationBuilder”未包含“SetBasePath”的定义
  20. LocalStorage存储对象

热门文章

  1. Kendo UI Web教程分享
  2. thrift的中文编码处理
  3. 吴恩达机器学习笔记-应用机器学习的建议
  4. 浅析Entity Framework Core2.0的日志记录与动态查询条件
  5. 后台服务器经典面试题
  6. Node.js基金会官方的开发者认证准备就绪
  7. Spring MVC POJO传参方式
  8. 12月国内网站流量统计5强:360安全中心后来居上
  9. 打开u盘时提示是否要将其格式化的提示
  10. 【并发编程】Future模式及JDK中的实现