[fli4l] WAN-IP

Christoph Schulz fli4l at kristov.de
Mo Sep 14 18:02:28 CEST 2015


Hallo!

Ulrich Hupe schrieb:

>> Das ist mir zu ungenau. Was genau funktioniert nicht? Ist die Variable
>> "local" leer? Enthält sie falsche Daten?
> gibts nicht, oder finde ich nicht

Sorry, ich verstehe immer noch nur Bahnhof.

Mach doch mal ein

echo local="$local" >>/tmp/local.log

in dein Skript und schaue nach, was da ankommt.

> 
>>> Es wird lediglich das date übertragen.
>>
>> Dann ist die Datei /usr/local/bin/eis.txt nicht vorhanden oder leer. Wer
>> generiert die denn überhaupt?
> 
> ich:
> 
> <html>
> [...]

Nun, das ist bei deinem Code eigentlich unmöglich: "sed" transformiert die 
Datei /usr/local/bin/eis.txt Zeile für Zeile und wendet dabei den 
Transformationsausdruck an. Wenn er nicht passt, wird die Zeile unverändert 
weggeschrieben. D.h. wenn $local leer sein sollte, wird die 
/usr/local/bin/eis.txt *unverändert* nach /tmp/datei.txt geschrieben.

Das einzige, was mir dazu einfällt, ist ein Kodierungsproblem: "§" ist kein 
ASCII-Zeichen. Wenn dein Skript ursprünglich für 3.6 war, dann hast du dafür 
vermutlich eine ISO-8859-1-Kodierung gewählt. Inzwischen spricht der Router 
aber UTF-8. Und Programme können ganz schön eingeschnappt sein, wenn die 
Kodierung nicht stimmt. Entweder du stellst sicher, dass _alle_ betreffenden 
"§" korrekt in UTF-8 umgewandelt werden, oder (der IMHO einfachere Weg) du 
verwendest statt "§" ein ASCII-Zeichen, etwa "%".

(Übrigens: Mir ist das Datum am Ende der Datei nicht klar... dadurch 
zerstörst du die Gültigkeit der generierten HTML-Datei, weil hinter dem 
abgeschlossenen <html>-Tag noch #PCDATA-Inhalt steht. Warum ersetzt du nicht 
ähnlich zu der IP-Adressen-Geschichte nicht einen Datumsmarker (z.B. "@"?) 
durch das tatsächliche Datum via sed?)


Viele Grüße,
-- 
Christoph Schulz
[fli4l-Team]



Mehr Informationen über die Mailingliste Fli4L