2012-09-21 145 views
0

我需要编写一个shell脚本,它将创建5分钟间隔时间的列表。生成5分钟间隔

00-00 
00-05 
00-10 
00-15 
... 
... 
23-50 
23-55 

这是我开始使用的命令。

# date 
Fri Sep 21 18:14:35 IST 2012 

# date '+%H-%M' 
18-14 

# date '+%H-%M' --date='5 minute ago' 
18-18 

如何编写脚本来生成列表? 如果太复杂,我会手动完成,因为它是一次性任务。


更新:

下面的脚本工作。但它会产生个位数像7-5实际上应该是07-05

#!/bin/sh 
for hour in `seq 0 24` 
do 
for minute in `seq 0 5 59` 
do 
echo $hour-$minute 
done 
done 
+0

你想做一个cron工作吗? http://www.thegeekstuff.com/2011/07/cron-every-5-minutes/ – 2012-09-21 13:12:21

+0

你正在使用哪一个shell?有一些简单的方法可以生成列表,例如'bash',但它可以在任何shell中执行。 – chepner

回答

1

以下shell脚本将返回所需的数据

#!/bin/sh 
for hour in `seq -w 0 24` 
do 
for minute in `seq -w 0 5 59` 
do 
echo $hour-$minute 
done 
done 
2

一个简单的bash溶液(4或更高版本):

printf "%s\n" {00..23}-{00..55..5} 
+0

这将返回23- {00..55..5} – shantanuo

+0

我没忘记提及这是bash 4或更高版本。 – chepner

1

如果您需要在给定的日期开始,你可以使用:

ITERATIONS=100 # adjust here 
D=$(date +%s) 
for ((i=0; i<$ITERATIONS; i++)) 
do 
    date '+%H-%M' -d @$((D+5*60*i)) 
done