Loading...

What is the Best Way to Perform Timestamp Comparison in Bash

Answer #1 98.5 %

By far the easiest is to store time stamps as modification times of dummy files. GNU touch and date commands can set/get these times and perform date calculations. Bash has tests to check whether a file is newer than (-nt) or older than (-ot) another.

For example, to only send a notification if the last notification was more than an hour ago:

touch -d '-1 hour' limit
if [ limit -nt last_notification ]; then
    #send notification...
    touch last_notification
fi
Answer #2 100 %

Use "test":

if test file1 -nt file2; then
   # file1 is newer than file2
fi

EDIT: If you want to know when an event occurred, you can use "touch" to create a file which you can later compare using "test".

Answer #3 100 %

Use the date command to convert the two times into a standard format, and subtract them. You'll probably want to store the previous execution time in a dotfile then do something like:

last = cat /tmp/.lastrun
curr = date '+%s'

diff = $(($curr - $last))
if [ $diff -gt 3600 ]; then
    # ...
fi

echo "$curr" >/tmp/.lastrun

(Thanks, Steve.)

Tags: bashtime

You’ll also like:


© 2022 CodeForDev.com -