演示:
代码如下:
#!/bin/bash
index=('|' '/' '-' '\\') #定义一个字符数组
bar='#'
i=0
while [ $i -le 100 ]
do
let colour=30+i%8
echo -en "\e[1;"$colour"m"
printf "[%-100s][%d][%c]\r" "$bar" "$i" "${index[i%4]}"
let i++
bar+='#'
usleep 300000
done
#恢复颜色并且换行,使得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,产生闪烁的效果。