PIpe kommt nur "Stückchenweise"

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Ace
Beiträge: 5
Registriert: 31.10.2009 17:50:14

PIpe kommt nur "Stückchenweise"

Beitrag von Ace » 04.11.2009 03:13:42

Hallo.

Ich probiere gerade eine Nummersiche-Tastatur auszulesen und zu verarbeiten.

In meinen ersten Versuchen bin auf diese Methode gestoßen.

Code: Alles auswählen

cat /dev/input/event1 | hexdump
Das klappt auch Prima, ich drücke eine taste und erhate dabei solche Ergebnisse.

Ausgabe

Code: Alles auswählen

0000000     a0c1    4af0    d240    0007    0004    0004    0004    0007
0000020     a0c1    4af0    d25d    0007    0001    001e    0001    0000
0000040     a0c1    4af0    d26a    0007    0000    0000    0000    0000
0000060     a0c1    4af0    0ad3    0009    0004    0004    0004    0007
0000100     a0c1    4af0    0aec    0009    0001    001e    0000    0000
0000120     a0c1    4af0    0af5    0009    0000    0000    0000    0000
0000140     a0c2    4af0    d3b0    000c    0004    0004    0005    0007
0000160     a0c2    4af0    d3c5    000c    0001    0030    0001    0000
0000200     a0c2    4af0    d3d1    000c    0000    0000    0000    0000
Nun wollte ich das ganze in einem Bash Script weiterverarbeiten.
Als erstes wollte ich dabei die Zeilen in "Echtzeit" von einander trennen.

Code: Alles auswählen

cat /dev/input/event1 | hexdump | while read line
do
	echo TEST: $line
done
Ausgabe:

Code: Alles auswählen

TEST: 0000000 ecd0 4af0 2141 0007 0004 0004 000b 0007
TEST: 0000010 ecd0 4af0 215a 0007 0001 0023 0001 0000
TEST: 0000020 ecd0 4af0 2165 0007 0000 0000 0000 0000
TEST: 0000030 ecd0 4af0 e381 000a 0001 0023 0002 0000
TEST: 0000040 ecd0 4af0 e398 000a 0000 0000 0001 0000
TEST: 0000050 ecd0 4af0 7796 000b 0001 0023 0002 0000
TEST: 0000060 ecd0 4af0 77ab 000b 0000 0000 0001 0000
TEST: 0000070 ecd0 4af0 13ec 000c 0001 0023 0002 0000
TEST: 0000080 ecd0 4af0 1401 000c 0000 0000 0001 0000
Doch hier hängt es plötzlich. Die Happen kommen nur stückchenweise.

Die Pipe scheint zu Puffern und erst nach einer gewissen Anzahl von Zeichen es an das $line zu übergeben.
Das macht es leider unmöglich in "Echtzeit" es zu verarbeiten und abzufangen.

Weiß jenand evtl. rat wie ich die Pipe aktiver machen kann?

Das Problem scheint durch hextdump ausgelößt zu werden.
Solange es direkt an die Console geht. Sehe ich direkt die ergebnisse.

Doch sobald ich es an ein weiteres Programm weitergebe oder in eine Datei schreibe und die mit tail oder cat beobachte, habe ich erst nach einigen Tastenanschlägen plötzliche eine Kolonne von Zeilen.

Gleiches Problem gilt auch wenn ich statt hexdump od -x versuche.

Beste Grüße, Ohje, ist das wieder spät geworden. Doofe console manchmal. Aber ich könnte nicht mehr ohne^^, wäre sie nur nicht immer so bockig

chrisbra
Beiträge: 122
Registriert: 19.10.2005 09:36:09
Wohnort: Sachsen-Anhalt
Kontaktdaten:

Re: PIpe kommt nur "Stückchenweise"

Beitrag von chrisbra » 04.11.2009 17:01:59

Meine Whishlist
:wq!

Antworten