用shell脚本实现一个彩色的进度条

来源:互联网 发布:java编写hello world 编辑:程序博客网 时间:2024/06/06 03:00

演示:





代码如下:

#!/bin/bashindex=('|' '/' '-' '\\') #定义一个字符数组bar='#'i=0while [ $i -le 100 ]dolet colour=30+i%8echo -en "\e[1;"$colour"m"printf "[%-100s][%d][%c]\r" "$bar" "$i" "${index[i%4]}"let i++bar+='#'usleep 300000done#恢复颜色并且换行,使得shell命令提示在下一行echo -e "\e[1;m"

echo -e 标识转义生效 -n 标识最后不输出换行符(echo默认输出换行),  代码中的echo 只用来控制终端的颜色。

其格式为 "\e[1; xm"

其中m的取值为:

  • 30m  黑色
  • 31m  红色
  • 32n  绿色
  • 33m  黄色
  • 34m  蓝色
  • 35m 洋红
  • 36m 青色
  • 37m 白色
代码中用 百分百i 对 8 取模再加30,产生闪烁的效果。