【shell脚本】脚本实现彩色进度条

实现代码:

#########################################################################
# File Name: procbar.sh
# Author: liumin
# mail: [email protected]
# Created Time: Sun 02 Jul 2017 09:21:46 AM CST
#########################################################################
#!/bin/bash

num=0
str='#'
max=100
pro=('|' '/' '-' '\')
while [ $num -le $max ]
do
	((color=30+num%8))
	echo -en "\e[1;"$color"m"
	let index=num%4
	printf "[%-100s %d%% %c]\r" "$str" "$num" "${pro[$index]}"
	let num++
	sleep 0.1
	str+='#'
done
printf "\n"
echo -e "\e[1;30;m"

进度条的原理在之前的博客有写过: http://blog.csdn.net/qq_35409955/article/details/55505691

这里主要详解进度条颜色设置:

shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用参数-e ,-n表示不换行

echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"

注: 
  1、字背景颜色和文字颜色之间是英文的"" 
  2、文字颜色后面有个m 
  3、字符串前后可以没有空格,如果有的话,输出也是同样有空格 

其中m取值:

30      黑色
31      红色
32      绿色
33      黄色
34      蓝色
35      紫红色
36      青蓝色
37      白色

这里的m值也就是color采用了取模运算, 是为了让进度条八种颜色不断变换达到彩色效果。



你可能感兴趣的:(Linux,shell)