* Jochen Kaechelin schrieb am 31.Jan.2002:
Wollte gerade mal mein erste Script schreiben, welches mir per Handy-Anruf per SMS die aktuelle IP des Rechners übermittelt:
#!/bin/bash
if less /var/log/isdn.log | grep +49XXXXXX; then
Warum less? cat macht das Gleiche, solange es nicht interaktiv ist. Aber es geht noch einfacher if grep +49XXXXXX /var/log/isdn.log Wenn Du keine Ausgabe haben möchtest, sondern nur Testen, ob +49XXXXXX in isdn.log vorkommt, was anderes machst Du hier nicht, dann würde ich ein grep -q nehmen. Aber ich glaube, Du willst eine Ausgabe haben, aber wohin? Nur auf dem Bildschirm kann es ja nicht sein, oder?
ifconfig ppp0 > ip
Hm, hier rufst Du ifconfig auf und schreibst die Ausgabe in eine Datei ip. Egal in welchem Verzeichniß Du gerade bist. Befindest Du Dich in Deinem Homeverzeichniß, so wird eine Datei /home/$USER/ip angelegt, befindest Du Dich gerade in /tmp, so wird eine Datei /tmp/ip angelegt, befindest Du Dich z.B in /etc, so bekommst Du eine Fehlermeldung, daß die Datei ip nicht angelegt werden kann.
sub=`ifconfig ppp0|grep inet`
Eben noch hast Du die Ausgabe von ifconfig nach ip geleitet, jetzt rufst Du ifconfig nochmal auf, warum. ip nutzt Du gar nicht. Wenn Du ip wirklich nutzen willst, so schreib es nach /tmp/ip, oder noch besser erzeuge Dir dafür einen einmaligen Namen. Und nachher aufräumen nicht vergessen, aber warum nimmst Du nicht einfach eine Shellvariable? Mit sub hast Du es ja auch gemacht.
cat ip|mail -s $sub jochen@wa-p.netz
Achso, hier taucht ip auf. Nein, so nicht. Mach doch einfach: ifconfig ppp0 | mail -s `ifconfig ppp0|grep inet` jochen@wa-p.netz Obwohl da immer noch zweimal ifconfig aufgerufen wird. Bernd -- ACK = ACKnowledge = Zustimmung | NAC = No ACknowledge = keine Zustimmung DAU = Dümmster Anzunehmender User | LOL = Laughing Out Loud = Lautes Lachen IIRC = If I Remember Correctly = Falls ich mich richtig erinnere OT = Off Topic = Am Thema (der Liste) vorbei |Zufallssignatur 11