博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bash给脚本加进度条_shell脚本实现进度条以及应用场景
阅读量:5733 次
发布时间:2019-06-18

本文共 2338 字,大约阅读时间需要 7 分钟。

使用shell脚本实现进度条加入到shell脚本当中,可以使shell脚本更好看、美观。

普通进度条

Shell

#!/bin/bash

b=''

for ((i=0;$i<=20;i++))

do

let jinshu=$i*5

printf "[%-20s]%d%%\r" $b $jinshu

sleep 0.1

b=#$b

done

echo

1

2

3

4

5

6

7

8

9

#!/bin/bash

b=''

for ((i=0;$i<=20;i++))

do

let jinshu=$i*5

printf "[%-20s]%d%%\r" $b$jinshu

sleep 0.1

b=#$b

done

echo

78397b2b25255df5f3d25eef27cc6283.png

bd4c823603c42746befc4a9287932fab.pngshell 脚本实现进度条1

倍数为5 (jinshu=$i* )$i乘以几倍数就是几

调整倍数后需调整  (“#?”代表要调整的参数)

Shell

((i=0;i<=#?;i++))

printf "[%-#?s]%d%%\r" $b $jinshu

1

2

((i=0;i<=#?;i++))

printf "[%-#?s]%d%%\r" $b$jinshu

带loading和特殊颜色的进度条

Shell

#!/bin/bash

i=0

str=""

label=('|' '/' '-' '\\')

index=0

while [ $i -le 20 ]

do

let index=i%4

let jinshu=$i*5

printf "\e[47m\e[31m[%-20s]\e[0m\e[47;32m[%c]\e[1;0m\e[47;35m[%-3d%%]\e[1;0m\r" $str ${label[$index]} $jinshu

let i++

str+="#"

sleep 0.1

done

echo

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#!/bin/bash

i=0

str=""

label=('|' '/' '-' '\\')

index=0

while [$i-le 20]

do

let index=i%4

let jinshu=$i*5

printf "\e[47m\e[31m[%-20s]\e[0m\e[47;32m[%c]\e[1;0m\e[47;35m[%-3d%%]\e[1;0m\r" $str${label[$index]}$jinshu

let i++

str+="#"

sleep 0.1

done

echo

2b88acb6d6254d3234ebd82108368ca3.pngshell 脚本实现进度条2

label是我们定义的数组,它用来交替显示{“\”,”|”,”/”,”-“} 这四个字符中的一个,由于“\”在Linux中含有特殊含义,所以需要用两个“\”,一个起转义作用。

index用来记录当前进度,从0-100,每次使str=str+”#”,while循环每次输出str,进度,及label中的字符。

以下为常用的颜色代号:

字背景颜色范围: 40--49 字颜色: 30--39

40: 30:

41: 31:

42: 绿 32: 绿

43: 33:

44: 34:

45: 35:

46: 深绿 36: 深绿

47: 白色 37: 白色

1

2

3

4

5

6

7

8

9

字背景颜色范围:40--49字颜色:30--39

40:黑30:黑

41:红31:红

42:绿32:绿

43:黄33:黄

44:蓝34:蓝

45:紫35:紫

46:深绿36:深绿

47:白色37:白色

改变进度形状

Shell

#!/bin/bash

# echo "准备中..."

i=0

str=""

arr=("|" "/" "-" "\\")

while [ $i -le 20 ]

do

let index=i%4

let indexcolor=i%8

let color=30+indexcolor

let NUmbER=$i*5

printf "\e[0;$color;1m[%-20s][%d%%]%c\r" "$str" "$NUmbER" "${arr[$index]}"

sleep 0.1

let i++

str+='+'

done

printf "\n"

# printf "正在执行...稍候!"

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#!/bin/bash

# echo "准备中..."

i=0

str=""

arr=("|" "/" "-" "\\")

while [$i-le 20]

do

let index=i%4

let indexcolor=i%8

let color=30+indexcolor

let NUmbER=$i*5

printf "\e[0;$color;1m[%-20s][%d%%]%c\r" "$str" "$NUmbER" "${arr[$index]}"

sleep 0.1

let i++

str+='+'

done

printf "\n"

# printf "正在执行...稍候!"

46e79c4df3a9c4010b71e981026414e4.pngshell 脚本实现进度条3

shell进度条使用场景

进度条可以用到执行比较危险操作的shell脚本中

提示用户 如果不想执行 可在进度条出按ctrl+c结束脚本

因为 在进度条跑的过程中是不会执行下面的代码的

也可以设置执行的任务和进度条代码一起执行

总结

shell脚本实现进度条以及应用场景介绍完了,shell编程进度条不是必须的,但确是能优化体验的。

浏览量:

24

1+

转载地址:http://atowx.baihongyu.com/

你可能感兴趣的文章
复合数据类型,英文词频统计
查看>>
CentOS 7运维管理笔记(8)----Apache基于域名的虚拟主机配置
查看>>
Codeforces 498A Crazy Town
查看>>
2015 GDUT校赛
查看>>
WCF服务部署到IIS7.5
查看>>
《软件测试自动化之道》读书笔记 之 底层的Web UI 测试
查看>>
mkdocs 生成帮助文档
查看>>
Sencha Touch 载入base64格式的图片数据
查看>>
.NET Core 实践:微服务架构的优点
查看>>
遍历文件夹下所有文件的路径
查看>>
iOS开发-Xcode入门ObjC程序
查看>>
spring多数据源配置
查看>>
struct ip 和struct iphdr && struct icmp 和 struct icmphdr
查看>>
信号量
查看>>
登录时将所有文件(夹)从桌面移除
查看>>
使用Chrome的开发者工具
查看>>
Pyqt4学习笔记-对话框(更新ing)
查看>>
SharePoint服务器端对象模型 完结
查看>>
linux下MySQL安装与删除 (Ubuntu下)
查看>>
可视化入门3:拾取
查看>>