如何在下午 15:00 时添加 15 或 30 或 60 分钟?

如何在下午 15:00 时添加 15 或 30 或 60 分钟?
#!/bin/bash
#the vm shutdown tag 
tag="15:00 PM"
#the "/usr/bin/input_azureuser.log" file contains snooze data in minutes
#snooze_time values will be "15,30 or 60" Minutes 
snooze_time=`cat /usr/bin/input_azureuser.log |tail -n 1 | awk '{print $8}'`

/usr/bin/input_azureuser.log

#azureuser@puppetclient-ubuntu:~$ cat /usr/bin/input_azureuser.log
Mon Sep 6 11:24:14 UTC 2021 azureuser 15
Mon Sep 6 11:36:32 UTC 2021 azureuser 30
Mon Sep 6 13:51:03 UTC 2021 azureuser 15
Mon Sep 6 13:52:31 UTC 2021 azureuser 60
Mon Sep 6 14:41:40 UTC 2021 azureuser 15

如果 snooze/delay_time 值是 15/30/60 分钟,我想向标签添加相同的值并更新标签,如“15:15 PM”、“15:30 PM”和“16:00”。

答案1

您可以使用该date命令为日期和时间添加相对偏移量。

date -d"90 minutes 15:00" '+%H:%M'

其中-d,时间和调整是,+...是输出格式。所以:

snooze_time=90
tag="15:00"
tag=`date -d"$snooze_time minutes $tag" '+%H:%M'`

会将标签更新为16:30

注意:使用 24 小时制的 AM/PM 是错误的。

相关内容