Temat: Stacja pogody, fowsr, zapis czasu UTC i zamiana na CET
Fowsr zapisuje dane ze stacji w pliku xml z czasem UTC, potrzebuję zamienić czas na nasz, napisałem więc skrypt który zmienia coś takiego:
<wsd date="2014-06-18 22:48:01" (to jest początek linii z danymi z pliku xml)
w coś takiego:
2014-06-19 0:48:01
Skrypt dodaje 2 do godzin 0-21, a godziny 22 i 23 zamienia na 0 i 1.
#!/bin/sh
DAT=$(date '+%Y-%m-%d') # data w momencie uruchomienia skryptu
UTC=$(grep -m1 wsd /tmp/fowsr.xml | cut -c 25-26) # godzina UTC
MIN=$(grep -m1 wsd /tmp/fowsr.xml | cut -c 27-32) # minuta
CET=$(expr $UTC + 2) # wyliczona przez dodawanie godzina CET (tylko dla godzin 0-21)
GOD=$(cat /tmp/cet) # gotowa godzina CET (dla wszystkich godzin)
rm -f /tmp/cet
if [ $UTC -eq 22 ] ; then
echo '0' > /tmp/cet
elif [ $UTC -eq 23 ] ; then
echo '1' > /tmp/cet
else
echo $CET > /tmp/cet
fi
echo $DAT $GOD$MIN
Powyższy skrypt działa, ale dopiero od drugiego uruchomienia w danej godzinie, pierwsze uruchomienie po przeskoczeniu każdej godziny daje starą godzinę, pewnie dlatego że GOD=$(cat /tmp/cet) zapamiętuje się w momencie uruchomienia skryptu, czyli jeszcze przed wyliczeniem i zapisaniem nowej godziny, dlatego rm -f /tmp/cet nic nie daje. Jak to poprawić?