Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Incrementing time (minutes and seconds) in bash / shell script

Tags:

bash

shell

time

I need to increment minutes and seconds (in relation to time) in a variable.

First, I'm not sure whether declaring a 'time' variable is written as

time="00:00:00" 

or

 time=$(date +00:00:00)?

From there, I want to increment this variable by 10 minutes and seconds resulting in

01:00:00 increased to
01:10:10 to
01:20:20 etc (all the way up to midnight - 00:00:00)

What would be the best way to achieve this?

I understand that doing $ date -d "2010-07-07 200 days" adds (200) days but I don't know how to apply this example to time (minutes and seconds) and not date?

All replies are much appreciated.

like image 971
cbros2008 Avatar asked Oct 21 '10 20:10

cbros2008


1 Answers

Note that this is Linux only. date -d on BSD unixes (and possibly others) does something significantly different (and untoward).

You could use epoch time - i.e., seconds since 1 Jan 1970 00:00:00, for example:

#!/bin/bash

time=0
echo `date -d "1970-01-01 00:00:00 UTC $time seconds" +"%H:%M:%S"`
time=$((time + 600))
echo `date -d "1970-01-01 00:00:00 UTC $time seconds" +"%H:%M:%S"`
time=$((time + 600))
echo `date -d "1970-01-01 00:00:00 UTC $time seconds" +"%H:%M:%S"`

gives this output:

$ /tmp/datetest.sh
00:00:00
00:10:00
00:20:00
$
like image 157
Chris J Avatar answered Oct 16 '22 17:10

Chris J