Linux "at"コマンドで使用された変数から時間を減らすには?

Linux

ジョブの開始時刻と日付を宣言するために変数を使用しますat。これはうまくいきましたが、今度はatタスクを変数で指定された時間より早く実行するには、time変数から時間を減らす必要があることに気付きました(変数は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

減算の結果、3番目の変数を導入するかどうかを考えましたが、それも不可能でした。

ベストアンサー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

おすすめ記事