So, Guten Tag ihr lieben,
Dank eurer gestrigen Hilfe ( :thumbs1: )bin ich mit meinem Skript quasi schon am Ziel. Nur tritt manchmal ein Fehler auf der es zum Abstürzen bringt! Die Fehlermeldung ist irgendwie nicht aufschlussreich
Hier zunächst das Skript:
#! /bin/bash
a=1
while [ $a -eq 1 ] ; do
time1=$(date +"%H:%M:%S")
hours=${time1:0:2}
minutes=${time1:3:2}
seconds=${time1:6:2}
syssec=$((hours*3600 + minutes*60 + seconds))
echo $syssec
time2=$(gpspipe -w -n10 | grep -m1 TPV | cut -d'"' -f18 | cut -d'T' -f2 | cut -c 1-8)
echo $time2
hours=${time2:0:2}
echo $hours
minutes=${time2:3:2}
echo $minutes
seconds=${time2:6:2}
echo $seconds
gpssec=$((hours*3600 + minutes*60 + seconds*1))
echo $gpssec
delta=$((gpssec-syssec))
echo delta = $delta
if [ $delta -lt 2 ] && [ $delta -ge 0 ] ; then
echo "Hurra, die Zeit synchronisation ist erfolgt!"
#a=0
else
echo "Bisher noch kein Zeitabgleich"
fi
done
exit 0
Alles anzeigen
Ziel ist die Systemzeit zu vergleichen mit der Zeit die durch Daten von einem GPS-Modul über die serielle Schnittstelle übertragen werden (GPIO 6/8). Die Differenz wird berechnet und nach ihrer Größe wird (später mal) entschieden ob die Systemzeit nun bereits vom GPS-Modul gestellt wurde oder noch nicht. Egal, das nur am Rande.
Das Skript enthält bereits einige Ausgaben die nur zur Fehlereinkreisung eingefügt wurden.
In den allermeisten Fällen ist die Ausgabe etwa so:
pi@Pi7:~/script $ sudo ./temp
36476
10:07:57
10
07
57
36477
delta = 1
Hurra, die Zeit synchronisation ist erfolgt!
36477
10:07:58
10
07
58
36478
delta = 1
Hurra, die Zeit synchronisation ist erfolgt!
36479
10:08:00
10
08
00
./temp: line 22: 08: value too great for base (error token is "08")
pi@Pi7:~/script $
Weil im Skript a=0 auskommentiert ist läuft die Schleife immer durch (auch nur zu Testzwecken). Jetzt: Immer wenn die Minuten oder die Sekunden der GPS-Zeit "08" sind, dann stürzt das Skript ab. Die Fehlermeldung macht für mich irgendwie keinen Sinn. Bei "04" oder bei "10" passiert das nicht. Komisch :s :s
Frage: Sieht da jemand von euch die Ursache?
Ich könnte damit leben wenn der Fehler ab und zu auftritt aber das Skript sollte nicht abstürzen sondern die Schleife einfach nochmal durchlaufen lassen.