倒计时10秒
echo -n:不换行输出
echo -e:处理特殊字符
\r:光标移至行首,但不换行
vim 10.sh
#!/bin/bash
for i in {10..1}
do
echo -n "After ${i}s is end! " ##要注意"!"后面跟一个空格,否则会重复打印"!"
echo -ne "\r"
sleep 1
done

倒计时1分10秒
此处要注意1:00的时刻
- 方法一:逻辑判断
vim 1_10.sh
#!/bin/bash
MIN=1
SEC=10
for((;SEC>=0;SEC--))
do
if [ "$SEC" = "0" -a "$MIN" = "0" ]
then
exit
elif [ "$SEC" = "0" -a "$MIN" -gt "0" ]
then
echo -n "After $MIN:${SEC} is end! "
echo -ne "\r"
((MIN-=1)) ##重新定义MIN
SEC=59
sleep 1
fi
echo -n "After $MIN:${SEC} is end! "
echo -ne "\r"
sleep 1
done

- 方法二:运算方式
vim 1_10.2.sh
#!/bin/bash
MIN=1
SEC=10
SEC=$[$SEC+$MIN*60] ##得到全部的秒
for ((;SEC>=0;SEC--))
do
echo -n After $[$SEC/60]:$[$SEC%60] is end!
echo -ne "\r"
sleep 1
done

版权声明:本文为S_K15原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。