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"

效果:

相关推荐
EulerBlind9 分钟前
【运维】SGLang 安装指南
运维·人工智能·语言模型
van叶~30 分钟前
Linux网络-------1.socket编程基础---(TCP-socket)
linux·网络·tcp/ip
风吹落叶花飘荡42 分钟前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
誰能久伴不乏1 小时前
Linux如何执行系统调用及高效执行系统调用:深入浅出的解析
java·服务器·前端
zoulingzhi_yjs1 小时前
haproxy配置详解
linux·云原生
bingbingyihao1 小时前
Node.js 模拟 Linux 环境
linux·node.js
大神的风范1 小时前
从0开始学linux韦东山教程Linux驱动入门实验班(5)
linux
Z7676_2 小时前
OSPF开放式最短路径优先
运维·网络
RPA+AI十二工作室2 小时前
影刀RPA_抖音评价获取_源码解读
运维·机器人·自动化·源码·rpa·影刀
小码过河.2 小时前
CentOS 搭建 Docker 私有镜像仓库
linux·docker·centos