关注+星标,干货第一时间送达

有点难过,
五一假期马上就要结束了。。。
还记得4-30号那天下班后,是多么的快乐
为什么快乐总是TM的这么短暂呢?
不明白,不明白。
为什么牛马的生活这么煎熬呢?
气人,气人。
如果自己能够把握生活的进度条,该多好,
让快乐慢一点,让难过快一点。
这个估计做不到,
没关系,小编给你演示怎么用shell脚本写进度条,
自己把控。
一、解决方案
演示工具:Centos7.9 + MobaXterm

无外乎4个元素:
方括号、井号、数字、百分号
方括号和百分号都是固定的,
井号只是会递增,和数字的相关连的。
那就简单了,
有多少数字,就打印多少井号就行。
举个例子:

这样就能打印任意多个井号。
看看代码吧:
#!/bin/bash
progress_bar(){
#当前进度偏移量
local process=$1
#总进度
local total=$2
#进度条长度
local width=100
#当前进度百分比
percent=$((process * 100 total))
#填充多少个 '#'
filled=$((process * width total))
# 进度条字符串
bar=$(printf"%${filled}s" | tr ' ''#')
# 进度条后面的空格
empty=$(printf"%$((width - filled))s")
# 打印进度条
printf"\r[%-${width}s] %3d%%""$bar$empty""$percent"
}
total=100
for ((i = 1; i <= total; i++));do
sleep 0.05
progress_bar "$i""$total"
done
echo -e "\n completed!"
执行效果:


二、脚本解析
(1)printf "%-100s"
意思是左对齐,有100个字符占位符,后面要打印的字符不满100个,就用空格填充
(2)printf "%%"
(2)printf "%%"
两个 %% 表示就是百分号
OK,这就是本期的内容了,下期再见!
文章转载自皮皮克克,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




