atrm で 17:00 より前にスケジュールされたすべてのジョブを削除します

atrm で 17:00 より前にスケジュールされたすべてのジョブを削除します

ユーザー名を位置パラメータとして、17:00前にスケジュールされたすべてのジョブを削除するシェルスクリプトが必要です。これが私が試したことです

#!/bin/bash
currentTime = ‘date + %k%M’
check_time_tu_run()
{
  tempTime=$1
  if 
    [ $tempTime -gt 000 -a $tempTime -lt 1700];
  then
    for i in `atq | awk '{print $1}'`;do atrm $i;done
  else 
    echo “Action is not in the period of time”
  fi

}

check_time_to_run $currentTime

答え1

  1. date コマンドの引用符の使い方が間違っています。‘...’バックティック ( ) の代わりに「波型」の一重引用符 ( )を使用しています`...`が、$(...)バックティックの代わりに を使用してください。
  2. =変数の割り当ての前後にスペースを入れることはできません。
  3. +の後にスペースを入れないでください。

使用:currentTime=$( date +%k%M )

また、関数の名前は定義するcheck_time_tu_run)は
関数名ではありません電話check_time_to_run

他にもエラーがあります: コードを貼り付けてくださいhttps://www.shellcheck.netさらにサポートが必要な場合はお問い合わせください。

関連情報