Linux中时间、循环、变量、判断

来源:互联网 发布:美女图片源码带采集 编辑:程序博客网 时间:2024/06/16 11:41
备注:在linux的shell中,等号左右不要留有空格

修改时间
[root@hadoop14 ~]# date
2016年 07月 31日 星期日 10:00:10 CST
=========================
[root@hadoop14 ~]# date  -s 07/27/16
2016年 07月 27日 星期三 00:00:00 CST

[root@hadoop14 ~]# date  -s 09:56:38
2016年 07月 27日 星期三 09:56:38 CST

[root@hadoop14 ~]# date
2016年 07月 27日 星期三 09:56:40 CST



年月日
echo   `date -d "2 day ago" +%Y%m%d`       前天
echo   `date -d yesterday +%Y%m%d`           昨天
echo   `date -d "1 day ago" +%Y%m%d`       昨天
echo   `date  +%Y%m%d`                               今天
echo   `date -d "day" +%Y%m%d`                 今天
echo   `date -d next-day +%Y%m%d`            明天
echo   `date -d "1 day" +%Y%m%d`               明天

年月日小时
echo   `date  +%Y%m%d%H -d '-1 hours'`    上一个小时
echo   `date  +%Y%m%d%H -d '0 hours'`      当前小时
echo   `date  +%Y%m%d%H -d '1 hours'`      下一个小时

年月日小时分
echo  `date -d '10 min' +%Y%m%d%H%M`             当前加10分钟
echo  `date -d '-10 min' +%Y%m%d%H%M`          当前减10分钟


#!/bin/sh
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
s1=`date --date="$1"  +%s`
s2=`date --date="$2"  +%s`
s3=$((($s2-$s1)/3600/24))
for ((i=$s3; i>0; i--))
do
  tmp=`date --date="$2 $i days ago" +%Y%m%d`
  hour=0
  for ((j=0;j<=23;j++))
  do
    if [ $j -lt 10 ];then
       hour=0$j
    else
       hour=$j
    fi
    s5=$tmp$hour
     hive -e 'drop table IF EXISTS tongji_sourceclassify_'"$s5"'_result ;'
  done
done
0 0