linux shell进度条

news/2024/11/8 22:53:16/

1.最简单的一行进度条

#!/bin/bashnum=0
str=''
max=100
postfix=('|' '/' '-' '\')
while [ $num -le $max ]
dolet index=num%4printf "[%-50s %-2d%% %c]\r" "$str" "$num" "${postfix[$index]}"let num++sleep 0.1if (($num % 2 == 0)); thenstr+='#'fi
done
printf "\n"

效果如下

原理:

利用printf的\r转译,每次从头输出一个字符串,更新进度条

 

2.一边输出内容一边更新进度条

#!/bin/bashnum=0
str=''
max=100
postfix=('|' '/' '-' '\')
while [ $num -le $max ]
dolet index=num%4shellwidth=`stty size | awk '{print $2}'`shellwidthstr="%-"$shellwidth"s\n"fmt_str="now "$num" shell tty width "$shellwidthprintf "$shellwidthstr" "$fmt_str"printf "[%-50s %-2d%% %c]\r" "$str" "$num" "${postfix[$index]}"let num++sleep 0.1if (($num % 2 == 0)); thenstr+='#'fi
done
printf "\n"

效果如下:

原理:

printf输出指定长度的字符串,长度用stty size获取,stty size返回高度和宽度

因为进度条以\r转译结束,所以下一次输出会从头输出,如果不输出一行的长度,进度条后面的输出不会刷新丢失

如上例,tty宽度是68,所以应该执行printf "%-68s\n" "$fmt_str"

"%-68s\n"通过shellwidthstr="%-"$shellwidth"s\n"拼接而成

"fmt_str"通过fmt_str="now "$num" shell tty width "$shellwidth拼接而成,这里就是需要自定义输出的内容

 


http://www.ppmy.cn/news/339528.html

相关文章

srs录像丢失调查,50s video lost when recording 6hrs.

SRS录像,发现统计直播时长和录像时长不一致。录像6hour,差了50s。 调查发现,on_publish事件和on_unpublish事件之间,差距就有4s。这4s是合理的,并不是录像视频丢失。 录像时长实际上是正确的,只是两个ts切片…

RSTP协议原理

RSTP协议原理 一、STP协议缺点 工作时收敛时间较长,响应速度慢原始的802.1d不支持多个vlan 二、RSTP rapid 1、为了解决STP收敛慢的问题 2、STP的问题 (一)、设备从初始化到收敛完成,最少经历30S 为了防止临时环路的出现,采用被等待的计…

50-16

50题 第16天 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 说明: num1和 num2 的长度小于110。 num1和 num2 只包含数字 0-9。 num1和 num2 均不以零…

jmeter线程组之jp@gc - Ultimate Thread Group

首先,我们来了解几个jmeter中的概念 我们在添加一个线程组时通常都要配置这几个属性 线程数:即并发用户数 ramp-up时间(秒):持续时间,加速时间 比如,并发数是1000个,持续时间设置…

RSTP和MSTP

今天学习了在STP的基础上,对其优化,伸展出RSTP和MSTP,现在看一下思维导图 RSTPSTP弊端解决方法RSTP原理MSTPRSTP弊端MSTP基本原理MSTP配置实现 第一章:RSTP STP弊端 STP从初始状态到完全收敛需要30s 交换机有BP端口&#xff0…

是什么引起数据库响应超时?

一、问题背景 一个核心业务数据库部署在AWS的EC2实例上,在业务活动期间发生了性能抖动导致业务超时。 下面记录一下问题排查的流程。 二、问题分析 1. 监控指标分析 发生问题后,第一时间肯定要看监控!首先分析服务器基础监控。 服务器的…

微信小程序引入字体

动态加载网络字体(推荐使用) 动态加载网络字体。文件地址需为下载类型。iOS 仅支持 https 格式文件地址 小程序文档参考链接:https://developers.weixin.qq.com/miniprogram/dev/api/ui/font/wx.loadFontFace.html // 我是在app.js中调用 wx.…

STP协议基础

STP协议 技术来源二层环路及危害二层交换机网络的冗余性与环路人为错误导致的二层环路二层环路带来的问题 STP生成树协议STP概述STP基本概念桥ID根桥COSTRPC(Root Path Cost)根路径开销PORT ID端口IDBPDU桥协议数据单元 STP的计算过程(1&…