【Linux修行路】进度条小程序
#!/bin/bash
# 进度条小程序
# 清除屏幕
clear() {
echo -en "\033[H\033[J"
}
# 打印水平进度条
# 参数1: 已完成的百分比
# 参数2: 进度条的总宽度
print_progress_bar() {
local percent=$1
local bar_width=$2
local bar=""
# 计算进度条的完成部分的宽度
local complete_width=$((bar_width * percent / 100))
local incomplete_width=$((bar_width - complete_width))
# 打印进度条完成部分
for ((i=0; i<complete_width; i++)); do
bar+='#'
done
# 打印进度条剩余部分
for ((i=0; i<incomplete_width; i++)); do
bar+='-'
done
# 打印进度条
printf "\r[%-${bar_width}s] %d%%" "$bar" "$percent"
}
# 主循环
for ((i=0; i<=100; i+=5)); do
# 清除之前的输出
clear
# 打印新的进度条
print_progress_bar $i 40
# 暂停0.1秒
sleep 0.1
done
# 清除最后的输出
clear
这段代码定义了一个清除屏幕的函数clear
和一个打印水平进度条的函数print_progress_bar
。主循环中使用了一个简单的for循环来模拟任务的进度,每次迭代都会更新进度条,并通过sleep
命令暂停一小段时间。最后循环结束后,清除了屏幕上的最后输出。这个示例展示了如何在Shell脚本中创建和更新文本模式的进度条。
评论已关闭