Shell倒计时脚本,结合图形输出

这个脚本已做了比较大的改动,功能更加完善,脚本可读性更强, 这里附上链接,有需要的朋友可以看看,觉得有什么地方可以改进给我建议,相互学习!
修改后的脚本的博文链接:https://blog.csdn.net/weixin_44901564/article/details/101781896
一、脚本需求
1.能够满足1000分钟以内的倒计时
2.输入秒数超过60时能够自动转化为分钟输出
3.要在屏幕中间结合图形输出
4.输出的图形数字每一个图形都是由该数字组成

先看看输出效果的图片:
在这里插入图片描述
像这样,每一个数字的图形都是由该数字组成

二、写脚本的思路
这个脚本可以看成是两种脚本的结合:
1.倒计时脚本
2.输出图形的脚本,而且输出的数字图形都是由该数字组成

可以说是将倒计时脚本输出的值存在一个变量里面传给输出输出图形脚本,然后将变量的值分解开来,例如变量的值为12:12,可以将12:12拆分为5个部分,分别为1、2、:、1、 2,然后再利用if判断判断每一个数字的值是多少,然后再输出相对应的数字图形

在这里插入图片描述
图形的坐标都由上图所得:
例如:
数字0的图形,坐标为(0 0 1 0 2 0 0 1 2 1 0 2 2 2 0 3 2 3 0 4 1 4 2 4)
数字1的图形,坐标为(1 0 1 1 1 2 1 3 1 4)

三、上脚本

#!/bin/bash
#====================================================================
#
#      文件名:countdown_Graphical.sh
#
#      用途:倒计时
#
#      用法:sh /root/countdown_Graphical.sh--->不输入时间默认为0
#
#      创建时间:2019-09-20
#
#      作者:xxx
#
#      坐标如下: 00 10 20 
#               01 11 21               
#               02 12 22
#               03 13 23
#               04 14 24
#
#===================================================================
echo -e "\033[1;32m"+===================================================================="\033[0m"
echo -e "\033[1;32m"+"\033[0m" "\033[1;31m"注意:"\033[0m"
echo -e "\033[1;32m"+"\033[0m" "\033[1;31m"脚本只支持数字倒计时,如果不小心输入'\'符号看到脚本卡住,继续按回车键"\033[0m"
echo -e "\033[1;32m"+"\033[0m" "\033[1;31m"或者正常输入就可以了,因为linux命令行下执行'\'的作用是换行输入"\033[0m"
echo -e "\033[1;32m"+===================================================================="\033[0m\n"

function f_print_coordinate
{
        num0=(0 0 1 0 2 0 0 1 2 1 0 2 2 2 0 3 2 3 0 4 1 4 2 4)
        num1=(1 0 1 1 1 2 1 3 1 4)
        num2=(0 0 1 0 2 0 2 1 2 2 1 2 0 2 0 3 0 4 1 4 2 4)
        num3=(0 0 1 0 2 0 2 1 2 2 1 2 0 2 2 3 2 4 1 4 0 4)
        num4=(0 0 0 1 0 2 1 2 2 2 2 0 2 1 2 3 2 4)
        num5=(2 0 1 0 0 0 0 1 0 2 1 2 2 2 2 3 2 4 1 4 0 4)
        num6=(2 0 1 0 0 0 0 1 0 2 0 3 0 4 1 2 2 2 2 3 2 4 1 4)
        num7=(0 0 1 0 2 0 2 1 2 2 2 3 2 4)
        num8=(0 0 0 1 0 2 0 3 0 4 1 0 2 0 2 1 1 2 2 2 2 3 1 4 2 4)
        num9=(0 0 0 1 0 2 1 0 2 0 2 1 2 2 1 2 2 3 2 4 1 4 0 4)
        colon=(1 1 1 3 )
}

function f_print_judge
{
        echo ""
        echo -e "\033[1;31m[ FAIL ]\033[0m \033[1;31m$1\033[0m \n"
}

##确定k的值
function f_if_k
{
        k1=($1)

        if [ "${z[*]}" == "
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值