date 命令的一些用法

来源:互联网 发布:max 软件下载 编辑:程序博客网 时间:2024/05/02 00:27
#!/bin/bash
minute=`date +%-M`
echo $minute

hour=`date +%-H`
hour_before=`date -d -1hour +%-H`
today=`date +%F`
tdate=`date +%Y%m%d`
month=`date +%Y%m`

timestamp=`date +"%Y-%m-%d %H:%M:%S"`

if [ $# -gt 0 ];then
        mytime=`date --date="$1"`
        hour=`date -d"$mytime" +%-H`
        hour_before=`date -d"$mytime"-1hour +%-H`
        today=`date -d"$mytime" +%F`
        tdate=`date -d"$mytime" +%Y%m%d`
        month=`date -d"$mytime" +%Y%m`
        minute=`date -d"$mytime" +%-M`
        timestamp=`date --date="$1" +"%Y-%m-%d %H:%M:%S"`
fi

if [ $minute -le 10 ];then
        echo "greate"
        let "hour=$hour-1"
        let "hour_before=$hour_before-1"

fi

写了一个按小时运行的任务,放到调度系统中运行,程序是在每小时的57分钟运行,但是调度系统经常会跨小时启动,造成很多错误。

所以在程序中对 时间进行判断,使用了几个知识点:

date 的形式

      minute=`date +%-M`    %-M 如果是0~9分钟,只显示1,2,3……,9,而%M 会显示 01,02,……,09 , 这种形式是不能在if 和let 中使用的

let 在shell中做运算