2013-07-16 132 views
0

我想上一个shell脚本日期工作日期的工作与庆典

2010.06.18_00:00:00_TAI 

在我的剧本,我想在一天内每45秒做一个循环来写命令。所以,我需要得到的字符串这样的:

2010.06.18_00:00:45_TAI 

2010.06.18_00:01:30_TAI 

2010.06.18_00:02:15_TAI 

...

我如何能做到自动好吗?

谢谢!

+0

我不确定这是做到这一点的最佳方式。关于“cron作业”和使用'watch'的脚本怎么样? – Atropo

+1

'我试图在shell脚本上处理日期 - 告诉我们你到目前为止所做的尝试。 – devnull

+1

'睡眠45'可能会有所帮助。祝你好运。 – shellter

回答

0

如果要打印特定格式的数据,date命令可以做到这一点:

$ date "+%Y.%m.%d_%H:%M:%S_TAI" 
2013.07.16_14:01:51_TAI 
0

需要GNU date

time=$(date -d 2010-06-18 +%s) # midnight June 18 
datetime=$(date -d @$time +%Y.%m.%d_%T_TAI) 
day=${datetime:8:2} 
while [[ ${datetime:8:2} = $day ]]; do 
    echo $datetime 
    ((time+=45)) 
    datetime=$(date -d @$time +%Y.%m.%d_%T_TAI) 
done 

这里有一个不同但类似的实现,似乎快了很多

awk 'BEGIN { 
    t=mktime("2010 06 18 00 00 00") 
    d=strftime("%d", t) 
    while (d==strftime("%d", t)) { 
     print strftime("%Y.%m.%d_%T_TAI", t) 
     t+=45 
    } 
}' 
+0

好的,谢谢你,它的工作原理! – user2375106