《Linux从练气到飞升》No.07 Linux第一个小程序-进度条的实现
#!/bin/bash
# 进度条实现示例
# 初始化进度条函数
init_progress_bar(){
echo -ne "\\033[0G[\\033[33m\\033[1m\\033[?7l"
}
# 更新进度条函数
update_progress_bar(){
local progress=$1
local total=100
local bar='#----------------------------------------'
local barsize=${#bar}
local progres_bar=""
if [ $progress -gt 100 ]; then
progress=100
fi
progres_bar=$(printf "%-${barsize}.${barsize}s" "$bar")
progres_bar=${progres_bar:0:$(($progress*$barsize/100))}
echo -ne "\\033[0G[$progres_bar] $progress%\\r"
}
# 结束进度条函数
end_progress_bar(){
echo -ne "\\033[0G[\\033[33m\\033[1m\\033[?7h]"
}
# 主逻辑
init_progress_bar
for i in $(seq 1 100); do
update_progress_bar $i
sleep 0.1
done
end_progress_bar
echo
这段代码实现了一个简单的进度条功能。它首先定义了初始化、更新和结束进度条的函数。主逻辑部分通过循环调用更新进度条的函数,模拟任务进度的变化。最后,结束进度条,并打印换行符。这个示例展示了如何在bash脚本中创建和使用进度条,对于学习Linux脚本编程有很好的教育价值。
评论已关闭