2017-05-29 2 views
0

Im Versuch, ein Skript (KSH) zu schreiben, die überprüft, ob richtigen Zeitpunkt gekommen ist (+/- 5 Minuten)Zeit beetween + 5/-5 Minuten

echo "$(cat /home/chojtom/Tomek/Log.txt | sed -e 's:\([0-9][0-9][0-9][0-9]\)\([-]\)\([0-9][0-9]\)\([-]\)\([0-9][0-9]\)\([[:space:]]\)\(.*\):\7:g')" | sed  -e "s:[:]::g" > "/home/chojtom//Time.csv" 

Dies ist variabele Zeit im Format: HHMMSS

if [ $(Time) -ge date "+%H%M%S" -d "5 min ago" ]; then 
echo "Wrong hour" 

else 


echo "Date Correct" 

aber zu diesem Schritt erhalten i Nachricht ./test.sh[45]: Time: not found [No such file or directory] ./test.sh[45]: [: date: unknown operator DATE CORRECT

die Datei Uhrzeit.csv mit Linie SSMMSS ist.

Kann nicht herausfinden, was ist falsch mit Datum Operator in IF. Kann bitte jemand helfen?

UPDATE und ich bemerkt habe, dass

Year="/home/chojtom/year.csv" 

$(cat /home/chojtom/Tomek/Log.txt | sed -e 's:\([0-9][0-9][0-9][0-9]\)\([-]\)\([0-9][0-9]\)\([-]\)\([0-9][0-9]\)\(.*\):\1:g')" > $Year 

Befehl keine Ausgabe in die Datei speichert

+0

Ok, sollte $ Time sein, die Shell sieht die Datei jetzt, aber immer noch - Datum: Unbekannter Operator Fehler erscheint –

Antwort

0

Auswertung Versuchen/Laufen des Datum Befehl:

if [ ${Time} -ge $(date "+%H%M%S" -d "5 min ago") ]; then 
echo "Wrong hour" 
else 
echo "Date Correct" 
fi 

Obwohl ich‘ Ich rate, dass dies noch eine Arbeit in Arbeit ist, da es "falsche Stunde" drucken sollte, selbst wenn $ {Time} mehr als 5 m ist ist alt.

+0

Ja, es ist in Arbeit, aber ich blieb auf dem Datum-Operator in If, lassen Sie mich überprüfen und Comeback zu Sie –

+0

Works!, großes Dankeschön. Immer noch Problem mit der Ausgabe speichern - post UPDATE –

+0

Wie für die neue/zweite Frage ... Ich würde vorschlagen, eine neue Frage zu öffnen (da gibt es 2 verschiedene Probleme) ... und den Inhalt der Log.txt-Datei plus die volle Ausgabe vom Befehl echo/cat/sed [beliebige (Fehler-) Nachrichten? Wird die Datei erstellt? was ist in der Datei?] – markp

Verwandte Themen