
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
- Sie verwenden die falsche Anführungszeichen um den Datumsbefehl. Sie verwenden „geschwungene“ einfache Anführungszeichen (
‘...’
) anstelle von Backticks (`...`
), verwenden aber$(...)
anstelle von Backticks. =
Bei einer Variablenzuweisung sind keine Leerzeichen vor dem Zeichen zulässig.- 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.