Skrypt przesyła SMS-ami morskie prognozy pogody dla obszarów Europy. W tej wersji skryptu wysyłane są 3 SMS-y z prognozami na kolejne dni.
Wymagania:Wygląd przykładowego SMS-a z prognozą na 1 dzień:
FCST Westteil Mar 23 TEMP:-4C/-1C morning SW 4B noon N 3-4B
overnight N 3-4B a.m. various clouds p.m. mostly sunny END
Zawartość pliku go:
#!/bin/sh
export TERM=xterm
export LYNX_TEMP_SPACE=/tmp
cd /gdziesnadysku/meteo
wget -O temp.txt -o /dev/null "http://wap.weatheronline.co.uk/wap/sail?L=en50011900"
echo From: s@a.pl > sms
echo To: +4860xxxxxxx@text.plusgsm.pl >> sms
awk -f a.awk temp.txt >> sms
echo >> sms
echo END >> sms
/usr/sbin/sendmail -t < sms
# ---------------- jutro
wget -O temp.txt -o /dev/null "http://wap.weatheronline.co.uk/wap/sail?L=en50011901"
echo From: s@a.pl > sms
echo To: +4860xxxxxxx@text.plusgsm.pl >> sms
awk -f a.awk temp.txt >> sms
echo >> sms
echo END >> sms
sleep 3s
/usr/sbin/sendmail -t < sms
# -------------- pojutrze
wget -O temp.txt -o /dev/null "http://wap.weatheronline.co.uk/wap/sail?L=en50011902"
echo From: s@a.pl > sms
echo To: +4860xxxxxxx@text.plusgsm.pl >> sms
awk -f a.awk temp.txt >> sms
echo >> sms
echo END >> sms
sleep 3s
/usr/sbin/sendmail -t < sms
rm -f sms
rm -f temp.txt
Zawartość pliku a.awk:
BEGIN { RS=""; ORS=""; OFS=""; }
{
# usuwamy zbedny koniec
gsub(/<a href=.*$/,"");
# usuwamy wszystkie tagi
gsub(/<[^>]*>/, " ");
gsub(/ /, " ");
# znaczek stopnia
gsub(/°/, "");
gsub(/Forecast/, "FCST");
# usuwamy dzien tygodnia
gsub(/[A-Za-z]*day/, "");
# skracamy Bft
gsub(/ *\(Bft\)/, "B");
# usuwamy temp w F i zbedne opisy
gsub(/Min: /,"TEMP:");
gsub(/ \/ .*F Max: /, "/");
gsub(/ \/ .*F /, " ");
# ogolne skracanie wiadomosci
gsub(/ +/, " ");
gsub(/\r/, "");
gsub(/\n/, "");
gsub(/ +/, " ");
gsub(/^ /, "");
gsub(/ $/, "");
if ($0=="")
next;
print "Subject: " $0 "\n";
exit;
}
© Rafał Fitt. Jeżeli kopiujesz, to przynajmniej napisz kto to wymyślił i gdzie
to znalazłeś ;-)