Como posso subtrair horas de uma variável sendo usada em um comando “at” do Linux?

1

Estou usando variáveis para informar a hora e a data de início de um trabalho at . Isso funciona bem, mas agora percebo que preciso subtrair um número de horas da variável de tempo para fazer com que o job at seja executado antes do que é declarado na variável (essa variável é usada em outro lugar no script, assim como no job)

#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

Eu pensei em introduzir uma terceira variável como resultado da subtração, mas também não consigo fazer isso.

    
por Jim Smith 16.01.2018 / 15:58

1 resposta

1

No meu sistema 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

Então, dados os valores apropriados em time e date , acho que isso deve funcionar:

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

É um pouco exigente sobre a ordem dos tokens, parece que eles precisam estar em ordem tempo , data , delta . Por exemplo. isso não funciona:

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