当前位置: 首页 > news >正文

Linux shell 进度条

概述

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

作用

        反馈任务进度:让用户直观了解任务执行的进展情况,比如文件拷贝、系统更新等操作,通过进度条能清楚知道已完成部分和剩余部分,避免因等待时间长而焦虑。
 
        监控任务状态:可实时反映任务是否正常进行。若进度条长时间停滞,可能表示任务出现问题,如遇到错误或资源瓶颈,有助于用户及时发现并处理。
 
        增强用户体验:为用户提供可视化交互,使操作更具吸引力和专业性,提升用户对系统或程序的满意度和信任度。
 
        预估完成时间:结合进度条和已用时间,用户能大致预估任务剩余时间,合理安排工作和等待时间。

实现

progress.sh:

# 总步数
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"

效果:

相关文章:

  • Nerf较真系列
  • Mybatis3 批量执行操作
  • 豆包API的部署和实战|基于 Selenium 的抖音自动化评论系统开发实践
  • 算法题刷题方法记录(蓝桥杯、Leetcode)
  • 算法练习(链表)
  • linux——计算机内存详解通俗理解
  • 文本数据处理——最佳文本切分策略
  • 【开源免费】基于SpringBoot+Vue.JS电商应用系统(JAVA毕业设计)
  • 编程题《牛牛的链表删除》的python可以用非链表的方式
  • 射频前端模块(FEM)中的功率放大器(PA):关键作用与优化方法
  • 掌阅iReader全球首款 7 英寸 Carta 1300 墨水屏阅读器即将发布
  • 【TI MSPM0】GPIO学习
  • 五大基础算法——递归算法
  • AI软件栈:推理框架(二)-Llama CPP1
  • 软件需求分类、需求获取(高软46)
  • 【专栏预告】《VR 360°全景视频开发:从GoPro到Unity VR眼镜应用实战》
  • 量化交易学习笔记02:双均线策略
  • YOLO简史:从YOLOv1到YOLOv12的技术革新与演进
  • 类和对象C++ (未完:对象特征)
  • 一周学会Flask3 Python Web开发-SQLAlchemy更新数据操作-班级模块
  • 海港负国安主场两连败,五强争冠卫冕冠军开始掉队
  • “五一”假期首日迎出游高峰:火车站人流“堪比春运”,热门景区门票预订量同比增三成
  • 对谈|《对工作说不》,究竟是要对什么说不?
  • 前行中的“模速空间”:要攻克核心技术,也要成为年轻人创业首选地
  • 中央网信办部署开展“清朗·整治AI技术滥用”专项行动
  • 奈雪的茶叫停“能喝奶茶就不要喝水”宣传,当地市监称不要误导消费者