概述
在 Linux Shell 中实现一个简单的进度条可以通过 printf 命令结合特殊字符来实现,以下是一个示例脚本,它模拟了一个从 0% 到 100% 的进度条。
作用
反馈任务进度:让用户直观了解任务执行的进展情况,比如文件拷贝、系统更新等操作,通过进度条能清楚知道已完成部分和剩余部分,避免因等待时间长而焦虑。
监控任务状态:可实时反映任务是否正常进行。若进度条长时间停滞,可能表示任务出现问题,如遇到错误或资源瓶颈,有助于用户及时发现并处理。
增强用户体验:为用户提供可视化交互,使操作更具吸引力和专业性,提升用户对系统或程序的满意度和信任度。
预估完成时间:结合进度条和已用时间,用户能大致预估任务剩余时间,合理安排工作和等待时间。
实现
bash
# 总步数
total_steps=100
# 进度条长度
bar_length=50
for i in `seq ${total_steps}`
do
# 计算已完成的进度条长度
filled_length=$((i * bar_length / total_steps))
# 计算剩余的进度条长度
remaining_length=$((bar_length - filled_length))
# 生成已填充的部分
filled_bar=$(printf '%*s' "$filled_length" | tr ' ' '#')
# 生成未填充的部分
remaining_bar=$(printf '%*s' "$remaining_length" | tr ' ' '-')
# 计算百分比
percentage=$((i))
# 输出进度条
printf "[$filled_bar$remaining_bar] %d%%\r" $percentage
# 模拟一些耗时操作,这里使用sleep 0.1秒
sleep 0.1
done
printf "\n"
效果:

