linux用脚本实现“时+分+秒”倒计时功能

linux用脚本实现“时+分+秒”倒计时功能

脚本目的:

调用脚本,实现倒计时,只给定需要计时的时间【总秒数】

题目例如:写一个脚本,可以实现任意秒数的倒计时。

思路解析:

1.倒计时有两部分:分钟和秒钟,所以我们需要对分钟和秒钟分别倒计时
2.当分钟和秒钟都不为0时:分钟是跟随秒钟变化的,分和秒又都可以随着总秒数的变化而变化。
3.显示出每一秒钟的倒计时。

脚 本 写 法 不 唯 一 , 根 据 分 秒 变 化 的 关 系 , 可 以 有 多 种 写 法 脚 本 写 法 不 唯 一 , 根 据 分 秒 变 化 的 关 系 , 可 以 有 多 种 写 法 脚 本 写 法 不 唯 一 , 根 据 分 秒 变 化 的 关 系 , 可 以 有 多 种 写 法 脚本写法不唯一,根据分秒变化的关系,可以有多种写法脚本写法不唯一,根据分秒变化的关系,可以有多种写法 \color{blue}{脚本写法不唯一,根据分秒变化的关系,可以有多种写法} 1;i>=0;i))doif["i" = “0” ]
then
echo "Time is over. "
exit
fi
((Minute=$i/60))
((Second=$i%60))
echo “$Minute : $Second”
sleep 1
# clear ###clear清屏,使倒计时始终显示在第一行。可以不写。
done

#!/bin/bash
for ((i=$1;i>=0;i--))
do
        if [ "$i" = "0" ]
        then
                echo "Time is over. "
                exit
        fi
        ((Minute=$i/60))
        ((Second=$i%60))
        echo "$Minute : $Second"
        sleep 1
done

 
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

脚本二:

在这里插入图片描述

在这里插入图片描述

#!/bin/bash
echo "Please input the time you what: "
read -p "First,the minute:please input a number:" MINUTE
read -p "Then,the second:please input a second(0-60):" SECOND
echo -e ""$MINUTE":"$SECOND"\nPlease wait 3 second "
sleep 3
((MAX="$MINUTE*60"+"$SECOND"))
for ((i="$MAX";i>=0;i--))
do
        if [ "$i" = "0" ]
        then
                echo "Time is over. "
                exit
        fi
        ((Min=$i/60))
        ((Sec=$i%60))
        echo "$Min : $Sec"
        sleep 1
done

注意:

clear清屏,是将本屏幕大小的shell界面移动上去,让下方空白的界面被我们使用,当用clear后,虽然倒计时一直显示在了屏幕最上方,但是却造成了很多空白shell界面的浪费。

由于输出是将结果直接显示在了屏幕上,清屏也可以使用reset,不过不建议使用,速度较慢。

如果是指定了倒计时时间,不需要有手动输入时间的话,将for循环中的$1直接换为指定的值即可


以上部分写于早期,补充显示法,以及显示时一直保持在同一行其他方法:

#!/bin/bash
read -p "please input time like[5:3]:" TIME
minute=`echo $TIME | awk -F : '{print $1}'`
second=`echo $TIME | awk -F : '{print $2}'`

echo “After 3 second , the game will begin.”

for i in 3 2 1
do
echo $i
sleep 1
done
echo “-------------------------”

while (( $minute >=0 ))
do
if [ $second = 0 ]&&[ $minute = 0 ]
then
echo “time over!!”
exit
elif (( $second >= 0 ))
then
echo m i n u t e : minute: minute:second | tr “\n” “\r”
(( second-- ))
sleep 1
elif (( $second<0 ))
then
(( minute-- ))
(( second=59 ))
fi
done

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值