wer kann grep und if then Schleife optimieren

heikomarx

Neuer User
Mitglied seit
14 Jul 2006
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
Hallo !

wer kann mir helfen, ich möchte dies hier vereinfachen also
nicht für jeden Suchbegriff eine Schleife (grep.. if ) anlegen

Danke


#!/bin/sh
a=0
b=0
x=0
#Endloschleife
while :; do

cd /var/tmp
wget http://cgi.w3.org/cgi-bin/html2txt?url=http://www.salue.de/handy/staus.phtml
grep "blitzer:" html2txt?url=http%3A%2F%2Fwww.salue.de%2Fhandy%2Fstaus.phtml > blitzer.txt
cat blitzer.txt >> log.txt


#Filter
if grep "Freisen" blitzer.txt > sms.txt
then
let a=$a+1
else
a=0
fi

if grep "Wolfersweiler" blitzer.txt > sms.txt
then
let b=$b+1
else
b=0
fi

#Send Mail -> SMS
if [ $a -eq 1 ] ; then
mailer -t xx -f xx-m smtp.gmx.de -s Blitzermeldung -a xx -w xx -i /var/tmp/sms.txt
fi

if [ $b -eq 1 ] ; then
mailer -t xx -f xx -m smtp.gmx.de -s Blitzermeldung -a xx -w xx -i /var/tmp/sms.txt
fi

#1/2 Stunde
sleep 1800

#Send log
let x=$x+1
if [$x -eq 2] ; then
mailer -t xx -f xx -m smtp.gmx.de -s Log -a xx -w xx -i /var/tmp/log.txt
fi

done
 
Zuletzt bearbeitet:
Zunächst mal solltest Du Programmteile mit CODE-Tags formatieren (Das Zeichen # im erweiterten Editor). Das macht es weitaus besser lesbar. Du kannst auch den bereits geschriebenen Beitrag noch ändern.

Mit der Shell und grep kannst Du das nicht vereinfachen, weil ja jedes mal nach einem anderen begriff gesucht wird.

Ansonsten ist die Konstruktion
Code:
let a=$a+1
a=0
auch seltsam, da a nachher den Wert 0 hat.

Wenn Du in Wirklichkeit nur danach suchen willst, ob einer der Begriffe vorkommt, kannst Du das verwenden:
Code:
grep 'Freisen\|Wolfersweiler'
 
Zunächst mal solltest Du Programmteile mit CODE-Tags formatieren (Das Zeichen # im erweiterten Editor). Das macht es weitaus besser lesbar. Du kannst auch den bereits geschriebenen Beitrag noch ändern.

Mit der Shell und grep kannst Du das nicht vereinfachen, weil ja jedes mal nach einem anderen begriff gesucht wird.

Ansonsten ist die Konstruktion
Code:
let a=$a+1
a=0
auch seltsam, da a nachher den Wert 0 hat.

Wenn Du in Wirklichkeit nur danach suchen willst, ob einer der Begriffe vorkommt, kannst Du das verwenden:
Code:
grep 'Freisen\|Wolfersweiler'
sorry !

ich hatte else vergessen

let a=$a+1
else
a=0
 
Wie wäre es mit:

Code:
rm blitzer.txt
wget -O myfile http://cgi.w3.org/cgi-bin/html2txt?url=http%3A%2F%2Fwww.salue.de%2Fhandy%2Fstaus.phtml
grep "blitzer:" myfile |  grep -e 'Wolfersweiler\|Freisen' > blitzer.txt
if [ -s blitzer.txt ]; then  
mailer -t xx -f xx -m smtp.gmx.de -s Blitzermeldung -a xx -w xx -i /var/tmp/sms.txt
fi
 
Zuletzt bearbeitet:
Danke

Hey !

Danke an RalfFriedl und Maxmuster
 
Kostenlos!

Statistik des Forums

Themen
248,922
Beiträge
2,305,230
Mitglieder
378,646
Neuestes Mitglied
atrora