怎么用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

执行效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值