shell练习题(倒计时10秒和倒计时1分10秒)

倒计时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版权协议,转载请附上原文出处链接和本声明。