/dev/ttyUSB0 auslesen und immer nur die letzte Ausgabe abspeichern

06/04/2012 - 16:38 von Horst Felder | Report spam
Hallo!

Ich habe ein Geràt (ELV USB-WDE1), welches alle paar Minuten
automatisch Daten an die Schnittstelle sendet.

#!/bin/bash

stty -F /dev/ttyUSB0 9600 cs8 raw -cstopb -parity -icanon -hupcl min
0 time 10

tail -f /dev/ttyUSB0 > wetteraktuell.txt

Eine einzelne Ausgabe sieht so aus:
$1;1;;;9,7;9,4;;16,3;;;;;;;;75;;;;15,2;42;0,0;5;0;0

Das obige Script macht das schon ganz gut, aber ich möchte nicht das
die einzelnen Ausgaben an die Datei dran gehangen werden, sondern die
Datei soll jedes mal überschrieben werden. So das immer nur die
letzte Ausgabe in der Datei "wetteraktuell.txt" steht. Ich dachte
eigentlich das ein ">" dies bewirken sollte, wird aber vermutlich
durch die Option "-f" von tail verhindert...

Kann mir jemand einen Tipp geben, wie ich mein Ziel möglichst einfach
in einer bash verwirklichen kann?

Mit freundlichen Grüßen
Horst Felder - www.flohheim.de
GNU/Linux; damit ich auch morgen noch vernünftig arbeiten kann!
 

Lesen sie die antworten

#1 Stefan Reuther
06/04/2012 - 18:29 | Warnen spam
Horst Felder wrote:
tail -f /dev/ttyUSB0 > wetteraktuell.txt


[...]
Das obige Script macht das schon ganz gut, aber ich möchte nicht das
die einzelnen Ausgaben an die Datei dran gehangen werden, sondern die
Datei soll jedes mal überschrieben werden. So das immer nur die
letzte Ausgabe in der Datei "wetteraktuell.txt" steht. Ich dachte
eigentlich das ein ">" dies bewirken sollte, wird aber vermutlich
durch die Option "-f" von tail verhindert...



">" löscht die Datei einmal. Du willst sie aber quasi nach jeder Zeile
löschen. Da würde ich mit
while read -r a; do
echo "$a" > wetteraktuell.txt
done < /dev/ttyUSB0
anfangen.


Stefan

Ähnliche fragen