Linux shell 进度条

概述

在 Linux Shell 中实现一个简单的进度条可以通过 printf 命令结合特殊字符来实现,以下是一个示例脚本,它模拟了一个从 0% 到 100% 的进度条。

作用

反馈任务进度:让用户直观了解任务执行的进展情况,比如文件拷贝、系统更新等操作,通过进度条能清楚知道已完成部分和剩余部分,避免因等待时间长而焦虑。

监控任务状态:可实时反映任务是否正常进行。若进度条长时间停滞,可能表示任务出现问题,如遇到错误或资源瓶颈,有助于用户及时发现并处理。

增强用户体验:为用户提供可视化交互,使操作更具吸引力和专业性,提升用户对系统或程序的满意度和信任度。

预估完成时间:结合进度条和已用时间,用户能大致预估任务剩余时间,合理安排工作和等待时间。

实现

progress.sh:

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"

效果:

相关推荐
2401_8920709818 小时前
【Linux C++ 日志系统实战】LogFile 日志文件管理核心:滚动策略、线程安全与方法全解析
linux·c++·日志系统·日志滚动
雪可问春风18 小时前
docker环境部署
运维·docker·容器
lwx91485218 小时前
Linux-Shell算术运算
linux·运维·服务器
翻斗包菜19 小时前
PostgreSQL 日常维护完全指南:从基础操作到高级运维
运维·数据库·postgresql
somi719 小时前
ARM-驱动-02-Linux 内核开发环境搭建与编译
linux·运维·arm开发
双份浓缩馥芮白19 小时前
【Docker】Linux 迁移 docker 目录(软链接)
linux·docker
海的透彻19 小时前
nginx启动进程对文件的权限掌控
运维·chrome·nginx
黄昏晓x19 小时前
Linux ---- UDP和TCP
linux·tcp/ip·udp
路溪非溪19 小时前
Linux驱动开发中的常用接口总结(一)
linux·运维·驱动开发
此刻觐神19 小时前
IMX6ULL开发板学习-01(Linux文件目录和目录相关命令)
linux·服务器·学习