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より多くの助けを得るために

おすすめ記事