首页 > 系统相关 >linux shell 中实现进度条

linux shell 中实现进度条

时间:2024-02-27 12:00:36浏览次数:27  
标签:输出 shell 进度条 50 step steps linux 100

 

linux  shell 中实现进度条:

#! /bin/bash

total_steps=100

for ((step=1; step<=total_steps; step++)); do
    printf "\r[%-50s] %d%%" $(printf "#%.0s" $(seq 1 $((step*50/total_steps)))) $((step*100/total_steps))
    sleep 0.1 # 模拟操作延迟
done
printf "\n"

 

命令解释:

for 中实现类c的循环,表示循环100次;

printf 命令中 有3个重要参数:分别是\r;  %-50s;  %d%%;

\r表示回车;即将光标移动到行首,实现新的输出内容在同一行覆盖旧的输出内容;

%-50s;  表示输出字符串,而且占用长度为50, -表示左对齐;

%d %%; %d表示输出整数; %%表示输出百分号;

 

printf后边的两个变量分别是两个$符号后边的内容:

01、 $(printf "#%.0s" $(seq 1 $((step*50/total_steps))))

#号表示每次输出的字符

%.0s表示输出字符串,但是不输出字符串的任何内容;

$(seq 1 $((step*50/total_steps)): 实际上是根据迭代的次数输出多少行的文件,这样前面的#可以输出多少次;step乘以50,而分母是100,因此迭代2次增加1行;迭代100次,最多输出50行,也就是最多输出50个#; 与printf的%-50s对应;

 

02、 $((step*100/total_steps))

这一步表示完成的循环次数占总的循环次数的比例,实际就是进度条的数值。

 

来源:

01、https://mp.weixin.qq.com/s?__biz=Mzg4ODA5NDEwNw==&mid=2247484496&idx=1&sn=f3839cec5a424369b2acdf9d2f7e9601&chksm=cf8128a4f8f6a1b29fbb9046b822e5202f12f39b274f15654b770ac7134298c4497fee08702c&mpshare=1&scene=23&srcid=0225098tDHqOHPllxMpS81BW&sharer_shareinfo=06fee7b30e0754937d5d3a8c14dc49c5&sharer_shareinfo_first=06fee7b30e0754937d5d3a8c14dc49c5#rd

 

标签:输出,shell,进度条,50,step,steps,linux,100
From: https://www.cnblogs.com/liujiaxin2018/p/18036602

相关文章

  • 转:Linux文件权限详解
    Linux文件权限详解_linux文件权限-CSDN博客掌握Linux文件权限,看这篇就够了-知乎(zhihu.com)  ......
  • Linux打印当前系统时间
    1、datedate 2、echoecho$(date+%F%n%T)输出年月日:echo$(date+%F)输出时分:echo$(date+%R)输出时分秒:echo$(date+%T)输出星期:echo$(date+%A) ......
  • Linux中安装FTP客户端(转载)
    Linux中测试搭建FTP服务器,刚安装完vsftpd测试登录时就提示“-bash:ftp:commandnotfound”,说明需要安装FTP客户端。1.http://rpmfind.net/linux/rpm2html/search.php?query=ftp下载客户端2.rpm-ivhftp-0.17-51.1.el6.x86_64.rpm安装客户端3.安装ftp-0.17-74.fc2......
  • Flink基础入门 模式概念(含案例 linux部署)
    Flink基础入门模式概念(含案例linux部署)一、flink简介flink引入大数据技术框架发展阶段总共有四代,mr-->DAG框架(tez)--->Spark流批处理框架,内存计算(伪实时)-->flink流批处理,内存计算(真正的实时计算)flinkvsspark<imgsrc="https://pic3.zhimg.com/v2-b29e9f603f8f467682a067299bc7......
  • linux 中 printf函数常用选项设置占位长度、左对齐、输出百分号
     001、设置占位长度[root@pc1test1]#printf"%s\n""abc"##一般输出abc[root@pc1test1]#printf"%20s\n""abc"##设置占位长度20,默认情况下是右对齐abc[root@pc1test1]#printf"%-2......
  • Linux内核的知识点
    1、发生硬件中断后,ARM处理器做了哪些事情?答:当CPU感知到中断发生后,硬件会自动做如下一些事情:1)保存中断发生时CPSR寄存器的内容到SPSR_irq寄存器中;2)修改CPSR寄存器,让CPU进入处理器模式(processormode)中的IRQ模式,即CPSR寄存器中的M域设置为IRQMode。......
  • VMware Linux虚拟机无网络的解决方案 --- 不显示网卡
    我的VMwareUbuntu虚拟机挂起休眠后,再次唤醒后会出现连不上网、显示不了网卡的问题。我认为这可能是系统问题。针对这一种问题的解决方案如下:1、将虚拟机网络适配器改为主机模式;2、在Ubuntu指令窗口中依次输入以下指令:sudoservicenetwork-managerstopsudorm/var/lib/Ne......
  • Linux学习-day4
    1.简述操作系统是什么?操作系统就是人与计算机之前交互的介质,有了操作系统,人才能使用计算机;同时,操作系统也是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心。有什么作用?管理和控制计算机系统中的硬件和软件资源,例如,它负责直接管理计算机系统的各种......
  • linux练手小项目:探测系统信息
    看了b站上的一个教学视频,复习了一下拿取linux系统信息的方法,并跟着up写了一个小的脚本完成一系列需求。写一篇博文记录一下这个过程,以后回顾用。课程地址:https://www.bilibili.com/video/BV1L7421T7mc课程课件:https://gitee.com/coldbloodx/lsbs需求显示当前运行的操作系......
  • I recommend a very small Linux, it is Watt OS version 13
    Dearall,MyfirsttimeusingLinuxWattOSversion12,itisverynice. Superfast!However,fornewusers,youneedthesecommandtostart:sudopasswdsudodate--setmm/dd/yyyysudoaptinstallgdebiItisworthytostudythesecommandline,because......