linux--shell脚本实现一个彩色进度条
来源:互联网 发布:nginx proxy ssl 编辑:程序博客网 时间:2024/06/05 01:19
实现一个彩色进度条,主要分为两个部分。其一:它得是一个进度条。其二:它得是彩色的进度条。
实现一个最简单的彩色进度条,得理解两个原理。
其一:实现一个进度条。
进度条其实有很多种。如下,很漂亮吧~但是还不曾了解其实现原理,哈哈哈哈哈~
现在我要实现的是最简单的一种进度条,就是你能想到的最简单的。
一个"#"字走天涯。
#
##
###
####
...
只不过进度条是在一行实现的。
进度条的实现是很简单的,一个循环,一个字符串,还有一个回车符(这里的回车符就是回车符,不是回车换行)。
在这个循环中,这个字符串每次不断的增加一个“#”,每次增加完毕之后又回到该行行首(这就是回车符的作用了!)。随着循环不断,进度条也就实现了啊~
其二:彩色进度条
在进度条的基础上加上彩色的实现。
终端的字符颜色由转义序列(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 或
通过转义序列设置终端显示属性时,可采用以下格式:
\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
上边巴拉巴拉的那么多(上边是我摘抄的。),其实最终要的就只有两句。
1,终端的颜色输出和语言没有关系,终端的字符颜色由转义序列控制。转义序列的开头就是:‘\033[’或‘\e['
2,\033[显示方式;前景色;背景色m输出字符串\033[0m 或 \e[显示方式;前景色;背景色m输出字符串\033[0m。。。就是这个公式。至于值填多少,就百度吧!
最三点是我自己总结,第三点就是:在使用echo和printf调用如上公式时,可能会导致除了你所要处理的进度条成了彩色的,你的linux命令行也会成为彩色的。
所以在程序结束的时候,要将所有设置回复原状。
说了这么多,其实我们今天实现的彩色进度条的彩色原理也很简单,就是一句话,设置彩色的属性值,在循环中不断变化。就可以形成一个彩色的进度条了。
【有空我在研究研究,看看还有什么更加棒的彩色进度条嘛...或者有哪位大神看见了,教教我。。】
最后,文末呈上一个进度条shell脚本代码。【本代码适合有shell脚本基础的人。】
阅读全文
0 0
- linux--shell脚本实现一个彩色进度条
- shell脚本实现一个彩色的进度条
- shell脚本实现一个彩色进度条
- Linux下实现一个简单进度条和shell脚本实现彩色进度条
- shell脚本实现彩色进度条
- shell脚本实现彩色进度条
- shell脚本--实现彩色进度条
- 用shell脚本实现一个彩色的进度条
- Linux--用shell脚本写一个彩色进度条
- linux脚本编程之shell实现彩色进度条
- 【shell脚本】脚本实现彩色进度条
- shell脚本实现彩色进度条的编写
- Linux:shell脚本之彩色进度条
- linux环境下实现进度条以及shell脚本实现彩色进度条
- shell实现彩色进度条
- shell实现彩色进度条
- shell脚本编写彩色进度条
- 【Linux】shell脚本实现进度条
- 非web服务配置log4j
- asp.net 获取客户端浏览器访问的IP地址
- java提高篇(三)hashmap jdk1.7
- mysql5.7.17安装过程 图文详解
- POJ 3059 Rummikub 笔记
- linux--shell脚本实现一个彩色进度条
- directive-自定义指令的方法.md
- Logstash-Output-Webhdfs
- 第二章:2.4 通过 startproject 来创建 Django 项目
- [000-u-boot-Exynos4412] RP4412 IROM Booting
- 堆排序算法
- 虚拟机安装苹果系统
- Java异常解决总结
- RabbitMQ (六) 路由选择 (Routing)