Ubuntu 自制倒计时软件

目录

说明

  在 Linux 下我一直没找到合适的倒计时软件,不如我们就自己做一个吧。

安装软件

#这个软件可以在屏幕上输出一些东西,有人用它做了一个可以显示歌词的东西。
sudo apt-get instal gnome-osd-client

脚本

#!/bin/bash
#倒计时脚本
#用法 scriptname time  (格式为:  ([0-9]+h)?([0-9]m)?([0-9]+s)? , 如 scriptname 1h1m32s 代表 1 小时 1 分钟 32 秒) 
#ubuntu 13.04 32 测试
#需安装 gnome-osd-client  sudo apt-get install ..

#把时间转换为秒
function t2s
{
    h=`echo $1 |egrep -o '[0-9]+h' |egrep -o '[0-9]+'`
    m=`echo $1 |egrep -o '[0-9]+m' |egrep -o '[0-9]+'`
    s=`echo $1 |egrep -o '[0-9]+s' |egrep -o '[0-9]+'`

    if [ ! -z $h ] 
    then
       h=`expr $h \* 3600`
    else
       h=0
    fi

    if [ ! -z $m ] 
    then
       m=`expr $m \* 60`
    else
       m=0
    fi

    if [ -z $s ] 
    then
       s=0
    fi



    echo `expr $h + $m + $s`

}
#把秒转换为时间
function s2t
{
     s=$1
     prs=`expr $s % 60`
     m=`expr \( $s - $prs \) / 60`
     prm=`expr $m % 60`
     h=`expr \( $m - $prm \) / 60`

     [ ${h} -lt 10 ] && h="0${h}"
     [ ${prm} -lt 10 ] && prm="0${prm}"
     [ ${prs} -lt 10 ] && prs="0${prs}"

     echo ${h}h:${prm}m:${prs}s
}


counter=${1-1m}
counter=`t2s ${counter}`


while [ ${counter} -gt 0 ]
do
 tm=`s2t ${counter}`
 gnome-osd-client -f "<message id='test'  osd_vposition='center' osd_halignment='center'><span size='50000' foreground='yellow'>${tm}</span></message>"
 sleep 1
 ((--counter))
 tm=`s2t ${counter}`

done
gnome-osd-client -f "<message id='test'  osd_halignment='right'><span size='50000' foreground='blue'></span></message>"



使用

./scriptname 1h1m32s 代表在屏幕上显示 1 小时 1 分钟 32 秒的倒计时

效果图