Linux:shell脚本之彩色进度条

shell实现彩色进度条 Hello,今天分享的是shell实现彩色进度条进度条,通过显示字符所占打印字符的比率,字符的数目的增加,以及长度的变化在显示器上模拟出进度条的变化; 下面代码实现的是渐变色,运行时色度不停会发生变化,主要是参数color的变化,随着i的变化,color=32+i%8 ,color也在发生变化,所以进度条的颜色在不断发生变化。 进度条最终停止的颜色与i%8加的这个数有关,与color的最 阅读详情

       关于进度条的实现原理,在之前的博客里面有描述过,这里就不赘述,只说说怎么实现彩色吧。

       首先来了解一下如何设置终端的字符颜色: 

       终端的字符颜色由转义序列(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


程序代码:

#!/bin/bash

i=0
bar=''
j=0
arr=('|' '/' '-' '\\')
while [ $i -le 100 ]
do
	printf "[\e[43;46;1m%-100s\e[0m][%2d%%][%c]\r" "$bar" "$i" "${arr[$j]}"
	bar="#"$bar
	let i++
	let j=i%4
	sleep 0.1
done
echo ""

运行结果:




Visual studio 2013 配置 Halcon 13 (非抄袭) Visual studio 2013 配置 Halcon 13.0.2.2 (其他版本适用) 针对网上抄袭的配置方法均不可用,写了一篇亲试可行的配制方法。如下: 1.下载Halcon安装后(C:\Program Files\MVTec\HALCON-13.0) 添加环境变量,(按下win按键,键入“环境变量”,出现 “编辑系统环境变量”后按下enter即可打开,下方找到“环境变量”按钮)的系... 阅读详情

相关推荐

基于Python的全卷积网络(FCN)实现路径损耗预测

本文提出一种基于全卷积网络(FCN)的无线信道路径损耗预测方法。通过合成数据生成模块构建包含房间布局和发射点坐标的训练数据集,采用双分支FCN架构融合空间特征与坐标信息,引入空间注意力机制增强关键区域提取。实验表明,该方法相比传统模型能更准确地预测复杂环境下的路径损耗,平均绝对误差降低约35%。系统支持端到端训练,可扩展融合多模态数据,为5G网络规划等应用提供高效预测工具。

huanghm88的专栏 566

linux shell进度条实现方法

直接看代码吧,很简单 代码如下:#!/bin/bash b=”i=0while [ $i -le  100 ]do    printf “progress:[%-50s]%d%%\r” $b $i    sleep 0.1    i=`expr 2 + $i`            b=#$bdoneecho       您可能感兴趣的文章:Linux下模拟实现进度条实例详解Linux用make指令编译进度条程序Linux下简易进度条的实现代码Linux简易彩色进度条的实例代码

西安电子科技大学 《电路分析》 课件PPT

西安电子科技大学 《电路分析》 课程PPT,期末、考研必备!西安电子科技大学 《电路分析》 课程PPT,期末、考研必备!

shell彩色进度条的编写

实现的进度条有随进度而变的百分比,以及随时间变化而变化的加载转动图标;

he_shuai20的博客 895

Linux实现打印彩色进度条

Linux 实现打印彩色进度条详解

分享C/C++/Linux/网络/数据库/数据结构 2486

Linux】基础开发工具(5):Linux的第一个程序:进度条

printf 确实支持彩色输出,核心是通过 ANSI 转义序列(控制字符组合)告诉终端切换文字颜色、背景色,甚至设置高亮、下划线等样式 —— 这能让我们的进度条更醒目(比如进度条用绿色、百分比用黄色、提示信息用蓝色)但是我们其实可以发现这个程序还是有很多的问题的,比如process的进度不一定和下载进度相匹配,进度计算没有边界校验等等问题,所以这个思路其实不够完善,我们引入第二个思路。但是现在这个程序有两个问题:(1)休眠间隔时间太长,(2)进度条应该是在一行中输出(下一行覆盖前一行),而不能在多行输出。

zzzsde的博客 926

利用Linux简单实现彩色进度条

#include<stdio.h> #include<Windows.h> int main() { char bar[102]; char laber[] = "|/-\\"; memset(bar,0,sizeof(bar)); for (int i = 0; i < 101; i++) { printf("[%-100s][%2d%%][%c]\...

赫菲斯托斯,, 304

linux c 延迟函数 sleep usleep 使用区别

目录 函数 sleep 函数 usleep 区别 函数 sleep 头文件: #include <unistd.h> // 在gcc编译器中,使用的头文件因gcc版本的不同而不同 功 能: 执行挂起指定的秒数 语 法: unsigned sleep(unsigned seconds); 示例: #include<stdio.h> int main() { int a; a=1; printf("hello");

whatday的专栏 3万+

嵌入式 C语言实现进度条以及实现带进度条的CP命令等编程示例收集一

Linux用C语言实现进度条 #include #include #include #include void drawper(int iFirst, int iSecnd, char* spOut) {   static int iCrlmm = 0;   int iPer = iFirst*100/iSecnd;   if(iFirst==iSecnd)

skdkjxy的专栏 1697

linux脚本编程之shell实现彩色进度条

一.shell语法一.shell语法1shell中printf()的使用shell中printf()的使用 printf的默认输出没有换行,换行需要自己加“\n” printf的默认输出没有换行,换行需要自己加“\n” .printf支持格式化输出,要不怎么能叫printf呢.printf支持格式化输出,要不怎么能叫printf呢 下面通过几个例子来实现printf的"输出"下面通过几个例子来实现

someday1314的博客 683

linux下用c和shell编写彩色进度条

进度条 显示在屏幕上的进度条一般分为三部分 1. 显示已经执行了多少 2. 执行多少占的百分比 3. 一个转盘 先来说一下普通的进度条 对于显示执行多少,一般都会预留100个空间,每0.1秒完成1% 对于执行占的百分比,用循环i来实现,每循环一次,i+1,刚好是循环占的百分比 对于转盘,用一个数组实现,数组中有四个元素\ | - /,当这四个元素依次循环时,出现一个简单的转盘。

jelly_gemini的博客 833

linux--shell脚本实现一个彩色进度条

实现一个彩色进度条,主要分为两个部分。其一:它得是一个进度条。其二:它得是彩色进度条。 实现一个最简单的彩色进度条,得理解两个原理。 其一:实现一个进度条进度条其实有很多种。如下,很漂亮吧~但是还不曾了解其实现原理,哈哈哈哈哈~ 现在我要实现的是最简单的一种进度条,就是你能想到的最简单的。 一个"#"字走天涯。 # ## ### #### ... 只不过进度条

char_pang_main_xue的博客 679

Linux--用shell脚本写一个彩色进度条

进度条分析具体分析请看我以前写的博客: http://blog.csdn.net/sayhello_world/article/details/55296656和上一个进度条不一样的地方 C语言中的printf与shell中的printf shell里的printf,它代表的是一条指令,指令的运行时交互式bash fork子进程,子bash执行指令,当一条指令执行完也就意味着进程结束。 进程结

sayhello_world的博客 927

shell 安装程序进度条实现

shell实现一个简单进度条 https://blog.csdn.net/xs_520/article/details/73917884?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLea...

Oliver King 的小窝 1281

Linux彩色进度条的实现

  实现一个彩色进度条的前提是要了解linux下如何改变shell的输出颜色,shell的输出颜色改变是通过转义序列完成的。   多数转义序列以控制字符 ‘ESC’ 和左中括号 ‘[’ 开头。该起始序列称为控制序列引导符,通常由 ‘\033[’ 或 ‘\e[’ 代替   通过转义序列设置终端显示属性时,采用以下格式:\033[属性{;属性;…}m 或 \e[属性{;属性;…}m 其中:’\033[...

Code_beeps的博客 369

Linux脚本编程/shell语法和shell进度条的编写

一、shell脚本的基本语法 1、条件测试:在shell脚本中,进行测试最常用的命令是test和[ 1).比较条件的成功与否,由test和 [ 的命令的退出码决定; 2).在shell脚本中,条件成立于不成立,与C语言正好相反,shell脚本认为0为真,非0为假; 3).shell脚本认为一行是一条命令,所以test是命令,后面的是参数或选项,用空格隔开; 4).shell脚本中进行整数

s25691011的博客 596

shell脚本编写彩色进度条

以前写过一个C的Linux下的进度条这次用shell脚本编写进度条基本的逻辑与一起C的没有大的区别这次的中的放在彩色上 可以用printf函数进行色块控制字背景颜色范围:40----49 40:黑 41:深红 42:绿 43:黄色 44:蓝色 45:紫色 46:深绿 47:白色字颜色:30-----------39 30:黑 31:红 32:绿 33:黄 34:蓝色 35:紫色 36:深绿 37:

Dakuan_chen的博客 680

实现一个彩色进度条

实现一个彩色进度条 要实现这个小的程序需要了解一些知识. Linux下的 \n 与 \r \n : 换行 \r: 回车 在linux下的回车键只代表\n,而在windows下的回车键表示\r\n(\n为进入下一行,\r为回到行首上)linux下只用\n,它就表示回车+换行而windows下,\r只回车不换行的,\n是换行. 缓冲区 缓冲区...

夜微雨的博客 502

Linux——利用Shell脚本编写进度条

初级版本(原始进度条):#!/bin/bashecho "hello" printf "\n" sleep 3 i=0 bar='' lable=('|' '\\' '-' '/') while [ $i -le 100 ] do #echo $i printf "[%-100s][%d%%][%c]\r" "$bar" "$i" "${lable[$i%4]}" bar='#'$bar let i

985136449的博客 1482

Linux下实现一个简单进度条shell脚本实现彩色进度条

我们先来看看进度条的实现代码 有读者可能会疑惑,\r和\n有区别吗? 答案是肯定的,“回车”“换行”实际上是两个动作,‘\n’表示换行,’\r’表示回车。再来看看为什么要用usleep? windows下我们最常用的的是sleep,但sleep的单位是秒,用于进度条有些太慢,所以此处我们用usleep微秒。那程序中的fflush又是什么作用? 我们先介绍一下缓冲的基本概念: UNIX里

ChaseRaod的博客 1339

shell彩色进度条

在编写进度条之前,首先要了解一些基本知识。 在linux下,\r是回车,回车是表示将光标移动到当前行的起始位置,\n是换行,换行表示将光标一定到当前行的下一行,保持还在一列。 而我们所编写的进度条就是不断刷新输入的内容,又因为不需要换行,所以在视觉上就会有一直在往前输出的感觉。 linux在命令行下也能产生不同颜色的背景和字体,只需要加上一些颜色代码,例如 echo -e "\033[44

zhangyi_ZY的博客 585
上一篇: Linux:shell脚本之命令替换(eval,反引号和$())
下一篇: C语言实现单链表
深山夕照
博客等级 码龄10年 28粉丝 94原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值