Shell 循环日期时间执行

因为for无法直接循环20:00:00这种格式的时间,所以需要先转为时间戳,循环时间戳然后在循环中在把时间戳转为想要的时间格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
# shell : sh date.sh 2020-07-20 10:00:00 2020-07-20 10:00:20 1010 create
# 获取传递的时间然后转换为时间戳
date="$1 $2"
start_time=`date -d "$date" +%s`
date2="$3 $4"
end_time=`date -d "$date2" +%s`
heroid=$5
keyword=$6
# for 循环时间戳 也可以写为
# for (( i=$start_time;i<=$end_time;i+=1 ))
for i in `seq $start_time $end_time`
do
# 把时间戳在转换为时间
logdate=`date "+%Y-%m-%d %H:%M:%S" -d @$i`
echo $logdate
logday=`echo $logdate |awk '{print $1}'`
echo $logday
cat ../../logs/tlog-$logday.* |grep $logdate |grep $heroid |grep $keyword
done
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2023 XIN LONG
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信