Variablen speichern und neue einfügen (klingt komisch :-) )

  • Halllo,


    ich bin dabei mit ein Script zu erstellen, das mir eine aktuelle Temperatur ausließt und es als Grafik darstellt.


    Mein Script sieht momentan so aus:

    Code
    ...Temperatur $TEMP1 holen...
    dann soll der Wert in eine Datei geschieben werden, nach diesem Schema:
    echo 'TEXT' $TEMP1' TEXT'>> /temperatur/test.htm


    Das Script wird jede Minute ausgeführt und soll den aktuellen Wert $TEMP1 wieder in die Zeile einfügen, aber den alten $TEMP1 nicht überschreiben.


    Wenn also 5 Minuten um sind, dann sollte die Zeile so aussehen:

    Code
    echo 'TEXT' $TEMP1,$TEMP1,$TEMP1,$TEMP1,$TEMP1,' TEXT'>> /temperatur/test.htm


    Dabei sollen die alten Temperaturen immer stehen bleiben und immer nur der aktuelle §TEMP1 eingefügt werden.



    Wie kann ich das anstellen?


    Oder sollte man die aktuellen Temperaturen in eine eigene Datei schreiben lassen und die dann von dort holen?


    Gruß
    Papsi

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

  • so sieht die Zeile dann aus, wenn ein Wert $TEMP1 geschrieben werden soll:

    Code
    echo '<img src="http://chart.apis.google.com/chart?chxr=0,0,24&chxt=x,y&chs=700x400&cht=lxy&chco=3072F3&chds=0,100,0,100&chd=t:-1|'$TEMP1',&chdl=Temperatur&chdlp=b&chls=1&chma=5,5,5,25&chtt=Temperatur" width="700" height="400" alt="Temperatur" />'>> /heizung/test.htm


    Das schreiben klappt schon, nur sollen ja die Temperaturen hintereinander immer wieder an den alten $TEMP1 eingefügt werden.

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

  • Hi,


    du musst dir die alten Temperaturwerte zwischen deinen Scriptläufden "merken". Das kannst du erreichen, indem du dir entweder die alten Werte mit einem entsprechenden regulären Ausdruck aus deiner geschriebenen Datei (/temperatur/test.htm) herausholst. Alternativ kannst du die Temperaturwerte aber auch passend in einer eigenen Taxtdatei speichern und am Anfang des Scripts auslesen, dann mit deiner neuen Temperatur verknüpfen, den neuen String wieder in die Datei schreiben und die Ausgabe machen. Das ist meiner Meinung nach einfacher...


    Ciao Louis

  • Das war auch meine Idee so ungefähr, nur scheitert es an den Befehlen... :dösen


    Mit welchen Befehlen kann ich denn einen Wert auslesen oder einen Zahlenreihe wieder als Variabel einlesen.


    PS :EDIT: GELÖST
    echo -n ... ist die Lösung


    Der Befehl echo schreibt meine Werte immer untereinander weg.
    Wie kann ich es "anstellen", dass mir die Werte hintereinander geschrieben werden?
    Also so:

    Code
    echo $TEMP1
    und nun soll mir der Wert $TEMP2 hinter $TEMP1 geschrieben werden

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

    Einmal editiert, zuletzt von Papsi ()

  • Ich habe es jetzt so eingestellt, das die Temperaturen immer hintereinander durch Kommas getrennt in eine extra Datei geschrieben werden.


    Wie kann ich jetzt mit meinem Script die 1. Zeile der Datei auslesen und als Variable weiter verarbeiten?

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

  • MEINEVAR=$(cat datei.ext)
    echo $MEINEVAR


    Wobei ich keine Ahnung habe was du mit tausenden kommaseperierten Werten in einer Variable willst.


    Was willst du denn am Ende erreichen? Solls ne Website mit ner Auswertung werden dann würde ich die gleich mit PHP erstellen. D.h. dein Schellscript schreibt die Messwerte minütlich in ne Datei (mittels "printf '%s\n' "$wert" >> datei") und das PHP Script erstellt auf Anforderung (d.h. wenn die Seite im Browser aufgerufen wird) die Seite (bisschen PHP in der HTML Seite, Datei auslesen und passende Balken Formatieren).


    cu

  • Diese ganzen Temperaturen, mit Kommatrennung brauche ich für mein nächstes Projekt.


    Damit lassen sich dann Diagramme mit Hilfe von Google erstellen:


    Hier mal ein Beispiel:

    Code
    http://chart.apis.google.com/chart?chxr=0,0,24&chxt=x,y&chs=700x400&cht=lxy&chco=3072F3&chds=0,100,5,100&chd=t:-1|22.3,22.3,22.3,22.3,22.3,22.3,22.3,22.3,22.4,22.2,23.1,23.4,24,24.5,25.1,25.2,26.3,26.9,22.4,28.1,28.6,29.2,29.8,30.4,30.9,31.4,32,32.5,33,33.4,33.9,34.4,34.9,35.3,35.2,36.1,36.5,36.9,32.3,42.4,42.6,42.9,43.1,43.3,43.5,43.8,43.9,44.1,44.4,44.6,44.8,44.9,45.1,45.3,45.5,45.2,45.9,46,46.2,46.4,46.5,46.2,46.8,42,42.1,42.3,42.4,42.5,42.6,42.2,42.8,42.8,42.8,42.9,42.9,42.9,42.9,42.9,42.9,42.9,42.9,42.9,42.9,42.9,22.3,22.3,22.3,22.3,22.3,22.3,22.3,22.3,22.4,22.2,23.2,23.1,24.1,24.15,25.13,25.19,26.15,26.21,22.5,28.11,28.16,29.14,29.2,30.14,30.19,31.5,32.1,32.15,33,33.4,33.9,34.14,34.19,35.11,35.15,36.13,36.12,36.21,32.4,42.4,42.6,42.9,43.1,43.3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0&chdl=Temperatur&chdlp=b&chls=1&chma=5,5,5,25&chtt=Warmwasser


    Ergibt das hier:
    BEISPIEL


    Danke trotzdem für deine Hilfe - hat funktioniert.

    Vice President Logistics and Materials Handling of the first 40" TFT Sammelbestellung and Atmolight I + II + III

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!