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"

效果:

相关推荐
国际云,接待1 小时前
云计算的基础概论
服务器·人工智能·阿里云·云原生·云计算·腾讯云·aws
乐维_lwops1 小时前
金融企业如何借力运维监控强化合规性建设?
运维·金融·运维监控
搬码临时工1 小时前
如何通过外网访问内网?对比5个简单的局域网让互联网连接方案
服务器·网络·智能路由器·内网穿透·外网访问
m0_593758101 小时前
系统重装之后,通过ssh无法登录
linux·运维·服务器
Micro麦可乐1 小时前
最新Spring Security实战教程(十四)OAuth2.0精讲 - 四种授权模式与资源服务器搭建
java·服务器·spring boot·spring·spring security·oauth2·oauth2授权
银河麒麟操作系统1 小时前
【银河麒麟高级服务器操作系统】服务器外挂存储ioerror分析及处理分享
linux·运维·服务器
某不知名網友1 小时前
Linux_进程退出与进程等待
linux·运维·服务器
程序员JerrySUN2 小时前
驱动开发硬核特训 · Day 28(上篇):pinctrl 子系统详解与实战分析
linux·驱动开发
wayuncn2 小时前
服务器托管的常见问题
运维·服务器·服务器租用·服务器托管·idc托管
ALex_zry2 小时前
告别手动输入密码:基于SSHPass的自动化文件传输实践告别手动输入密码:基于SSHPass的自动化文件传输实践
运维·自动化