怎么用shell脚本实现一个1分10秒的倒计时
Posted Tuki_a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用shell脚本实现一个1分10秒的倒计时相关的知识,希望对你有一定的参考价值。
简单版
简单版思路:
1分10秒就是70秒,用循环来实现,但问题是分钟数变了的话要一直手动更改增加。
脚本内容如下:
#!/bin/bash
for j in {70..1}
do
if [ $j -gt 60 ] #当大于等于60时
then
export x #定义用户级变量
((x=$j-60)) #减去60秒就是10秒
echo -ne "\\r after 1:$x is end " #分钟数是手动指定的
sleep 1 #休眠1s
else
echo -ne "\\r after ${j}s is end " #剩下那60秒时间
sleep 1 #休眠1s
fi
done
执行效果如下:
升级版
升级版思路:
将分钟数和秒数以变量的形式存储,这样想改成几分几秒的计时就很容易了。
脚本内容如下:
#!/bin/bash
SEC=10
MIN=1
for ((;SEC>=0;SEC--)) #类似于c语言的for((i=0;i<5;i++))
do
if [ "$MIN" = "0" -a "$SEC" = "0" ] #计时结束就退出程序
then
exit
elif [ "$SEC" = "0" -a "$MIN" -ge "0" ] #该分支用于重置秒数并在一分钟结束的时候减一分钟数
then
echo -n "After $MIN:$SEC is end "
echo -ne "\\r" #n不换行输出,e \\r是光标移至行首,但不换行
SEC=60 #重新将秒数置为60
((MIN--)) #分钟数减一
sleep 1
else #只要秒数不为0的时候,都走的是这个分支
echo -n "After $MIN:$SEC is end "
echo -ne "\\r"
sleep 1
fi
done
执行效果如下:
以上是关于怎么用shell脚本实现一个1分10秒的倒计时的主要内容,如果未能解决你的问题,请参考以下文章