Chinaunix首页 | 论坛 | 博客
  • 博客访问: 512981
  • 博文数量: 173
  • 博客积分: 4112
  • 博客等级: 上校
  • 技术积分: 1577
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-26 10:12
文章分类

全部博文(173)

文章存档

2012年(1)

2010年(172)

我的朋友

分类:

2010-04-09 16:19:46

#!/bin/bash

# User Defined Variables
# H,M,S        系統時間
# rhflag    0 = 當日, 1 = 明天, 2 = 後天...
# strUsage    參數提示訊息
# timeoffset    使用者輸入的時間 (時:分:秒)
# oh,om,os    從 timeoffset 提列出來的 時, 分, 秒 (case 1) / 進位值 (case 2)
# rh,rm,rs    運算結果 時, 分, 秒
# offset    使用 -h, -m, -s 參數時, 使用者帶入的數值

# System Variables
# $#    參數數量
# $0    Shell Script 檔名
# $1    第一個參數
# $2    第二個參數

H=`date +%H`
M=`date +%M`
S=`date +%S`
rhflag=0
strUsage="Usage:\n$0 hh:mm:ss\nor\n$0 [-h|-m|-s] number\n"

case "$#" in
1)
    timeoffset=$1
    oh=`echo $timeoffset | awk -F ':' '{print $1}'`
    om=`echo $timeoffset | awk -F ':' '{print $2}'`
    os=`echo $timeoffset | awk -F ':' '{print $3}'`
    rs=`expr $S + $os`
    if [ $rs -gt 59 ]; then
        ((rs -= 60))
        om=`expr $om + 1`
    fi
    rm=`expr $M + $om`
    if [ $rm -gt 59 ]; then
        ((rm -= 60))
        oh=`expr $oh + 1`
    fi
    rh=`expr $H + $oh`
    if [ $rh -gt 24 ]; then
        ((rhflag = rh / 24))
        ((rh %= 24))
    fi
;;

2)
    offset=$2
    if [ $1 == "-h" ]; then
        rh=`expr $H + $offset`
        rm=$M
        rs=$S
        if [ $rh -gt 24 ]; then
            ((rhflag = rh / 24))
            ((rh %= 24))
        fi
    elif [ $1 == "-m" ]; then
        rh=$H
        rm=`expr $M + $offset`
        rs=$S
        if [ $rm -gt 59 ]; then
            ((oh = rm / 60))
            ((rm %= 60))
            rh=`expr $H + $oh`
            if [ $rh -gt 24 ]; then
                ((rhflag = rh / 24))
                ((rh %= 24))
            fi
        fi
    elif [ $1 == "-s" ]; then
        rh=$H
        rm=$M
        rs=`expr $S + $offset`
        if [ $rs -gt 59 ]; then
            ((om = rs / 60))
            ((rs %= 60))
            ((rm += om))
            if [ $rm -gt 59 ]; then
                ((oh = rm / 60))
                ((rm %= 60))
                ((rh += oh))
                if [ $rh -gt 24 ]; then
                    ((rhflag = rh / 24))
                    ((rh %= 24))
                fi
            fi
            
        fi
    else
        printf $strUsage
        exit 1
    fi
;;

*)
    printf $strUsage
    exit 1
;;
esac

if [ $rh -eq 24 ]; then
    rh=0
    rhflag=1
fi
echo "$H:$M:$S"
echo "$rhflag $rh:$rm:$rs"
阅读(927) | 评论(0) | 转发(0) |
0

上一篇:qmail 别名 alias

下一篇:cisco 常用oid

给主人留下些什么吧!~~