Entfernen Sie alle vor 17:00 Uhr geplanten Jobs mit atrm

Entfernen Sie alle vor 17:00 Uhr geplanten Jobs mit atrm

Ich brauche ein Shell-Skript, das alle vor 17:00 Uhr geplanten Jobs mit dem Benutzernamen als Positionsparameter entfernt. Das habe ich versucht

#!/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

Antwort1

  1. Sie verwenden die falsche Anführungszeichen um den Datumsbefehl. Sie verwenden „geschwungene“ einfache Anführungszeichen ( ‘...’) anstelle von Backticks ( `...`), verwenden aber $(...)anstelle von Backticks.
  2. =Bei einer Variablenzuweisung sind keine Leerzeichen vor dem Zeichen zulässig.
  3. Darauf +darf kein Leerzeichen folgen.

Verwenden:currentTime=$( date +%k%M )

Auch der Name der Funktion, die Siedefinieren( check_time_tu_run)
ist nicht der Name der Funktion, die SieAnruf( check_time_to_run)

Es gibt andere Fehler: fügen Sie Ihren Code ein inhttps://www.shellcheck.netfür weitere Unterstützung.

verwandte Informationen