如何从 Linux“at”命令中使用的变量中减去小时数?

如何从 Linux“at”命令中使用的变量中减去小时数?

我使用变量来声明作业的开始时间和日期at。这工作正常,但现在我意识到我需要从时间变量中减去几个小时,以使 at 作业比变量中规定的时间更早运行(该变量在脚本的其他地方以及 at 作业中使用)

#variables
time=2:00pm
date=2018-1-16

#I need to subtract 4 hours from the time variable 
at -f /home/JS/filename $time-4hours $date >attemp 2>&1

我想过引入第三个变量作为减法的结果,但也无法实现。

答案1

在我的 Debian 系统上:

$ echo true | at 2:00pm 2018-01-18 - 4 hours
warning: commands will be executed using /bin/sh
job 10 at Thu Jan 18 10:00:00 2018

time因此,考虑到和中的适当值date,我认为这应该有效:

$ at -f ... $time $date - 4 hours

对令牌的顺序有点挑剔,看来它们需要按顺序排列时间,日期,三角洲。例如,这不起作用:

$ echo true | at 2:00pm - 4 hours 2018-01-18
syntax error. Last token seen: 2018-01-18
Garbled time

相关内容