shell脚本实现进度条功能
2017-07-02 22:49
453 查看
一,什么是shell脚本。
一个 shell 脚本就是一个包含一系列命令的文件。shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样。
Shell 有些独特,因为它不仅是一个功能强大的命令行接口,也是一个脚本语言解释器。我们将会看到, 大多数能够在命令行中完成的任务也能够用脚本来实现,同样地,大多数能用脚本实现的操作也能够 在命令行中完成。另外shell里面变量是弱变量类型的,这就意味着我们可以在任何时候直接使用变量,而不用定义。
二,用shell脚本实现进度条
2.1 初始版本:
arry是我们定义的数组,它用来交替显示{“\”,”|”,”/”,”-“} 这四个字符中的一个,由于“\”在Linux中含有特殊含义,所以需要用两个“\”,一个起转义作用。
i用来记录当前进度,从0-100,每次使str=str+”#”,while循环每次输出str,进度,及arry中的字符。
运行结果:
2.2 改进版
首先看一下运行结果:
此时运行将会以颜色显示,并且在百分之20,百分之45,百分之75及之上显示不同的颜色,即产生颜色交替。该功能是在打印的时候加上颜色选项实现的,而颜色的代号又是个变量,在不同的区间会有不同的选择。
以下为实现代码:
与版本1不同之处便在我们在打印的时候加入了颜色属性,首先我们来学习一下如何在Linux中打出带有颜色的字体
文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例:
printf(“\033[字背景颜色;字体颜色m字符串\033[0m” );
示例:
printf(“\033[40;37 this will be colored\n\033[0m”);
echo -e “\033[40;37this will be colored\n\033[0m”
其中40,37分别代表字体背景颜色及字体颜色,在这里我们只需要将字体颜色与字体背景颜色选为相同的,便可以实现上图的功能。
以下为常用的颜色代号:
一个 shell 脚本就是一个包含一系列命令的文件。shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样。
Shell 有些独特,因为它不仅是一个功能强大的命令行接口,也是一个脚本语言解释器。我们将会看到, 大多数能够在命令行中完成的任务也能够用脚本来实现,同样地,大多数能用脚本实现的操作也能够 在命令行中完成。另外shell里面变量是弱变量类型的,这就意味着我们可以在任何时候直接使用变量,而不用定义。
二,用shell脚本实现进度条
2.1 初始版本:
#!/bin/bash i=0 str="" arry=("\\" "|" "/" "-") while [ $i -le 100 ] do let index=i%4 printf "[%-100s] %d %c\r" "$str" "$i" "${arry[$index]}" sleep 0.1 let i=i+1 str+="#" done printf "\n"
arry是我们定义的数组,它用来交替显示{“\”,”|”,”/”,”-“} 这四个字符中的一个,由于“\”在Linux中含有特殊含义,所以需要用两个“\”,一个起转义作用。
i用来记录当前进度,从0-100,每次使str=str+”#”,while循环每次输出str,进度,及arry中的字符。
运行结果:
2.2 改进版
首先看一下运行结果:
此时运行将会以颜色显示,并且在百分之20,百分之45,百分之75及之上显示不同的颜色,即产生颜色交替。该功能是在打印的时候加上颜色选项实现的,而颜色的代号又是个变量,在不同的区间会有不同的选择。
以下为实现代码:
#!/bin/bash i=0 str="" arry=("\\" "|" "/" "-") while [ $i -le 100 ] do let index=i%4 if [ $i -le 20 ] then let color=44 let bg=34 elif [ $i -le 45 ] then let color=43 let bg=33 elif [ $i -le 75 ] then let color=41 let bg=31 else let color=42 let bg=32 fi printf "\033[${color};${bg}m%-s\033[0m %d %c\r" "$str" "$i" "${arry[$index]}" usleep 30000 let i=i+1 str+="#" done printf "\n"
与版本1不同之处便在我们在打印的时候加入了颜色属性,首先我们来学习一下如何在Linux中打出带有颜色的字体
文本终端的颜色可以使用“ANSI非常规字符序列”来生成。举例:
printf(“\033[字背景颜色;字体颜色m字符串\033[0m” );
示例:
printf(“\033[40;37 this will be colored\n\033[0m”);
echo -e “\033[40;37this will be colored\n\033[0m”
其中40,37分别代表字体背景颜色及字体颜色,在这里我们只需要将字体颜色与字体背景颜色选为相同的,便可以实现上图的功能。
以下为常用的颜色代号:
字背景颜色范围: 40--49 字颜色: 30--39 40: 黑 30: 黑 41: 红 31: 红 42: 绿 32: 绿 43: 黄 33: 黄 44: 蓝 34: 蓝 45: 紫 35: 紫 46: 深绿 36: 深绿 47: 白色 37: 白色
相关文章推荐
- shell脚本实现进度条功能
- shell脚本实现查找文件夹下重复的文件,并提供删除功能
- 利用shell脚本实现计划任务功能
- Shell脚本实现删除一年前文件功能分享
- shell脚本实现文件锁功能
- CentOS 6.7编写Shell脚本实现简单跳板机功能
- 利用shell脚本实现计划任务功能
- Shell脚本实现的单机流量统计功能
- shell脚本实现文件锁功能
- 使用shell脚本实现自动SSH互信功能
- shell脚本实现智能化查看功能
- Shell中实现类似于结构体/数组功能的脚本
- Shell脚本中实现自动补全功能
- Shell脚本实现自动修改IP、主机名等功能分享
- 实现学生成绩增删查改功能的shell脚本
- 利用shell脚本实现计划任务功能 V1.2
- 使用shell脚本实现自动SSH互信功能
- 无聊乱搞:用shell脚本实现windows下cena的评测功能
- Shell脚本中实现字符串变量的去重功能