怎么用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 $js 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秒的倒计时的主要内容,如果未能解决你的问题,请参考以下文章

怎么用shell脚本实现一个1分10秒的倒计时

shell脚本如何实现毫秒级别的计时

STM32怎么实现单片机控制LED灯常亮10S后熄灭?

shell脚本练习实例详解

使用shell脚本for循环实现一天倒计时

倒计时(时分秒)面板