Da kramen wir doch ein zu unrecht kaum mehr beachtetes Kommandozeilen-Tool raus: expect
Folgender Aufruf beobachtet Datei src und sucht nach Zeilen mit dem Muster pattern. Alle 60 Sekunden wird, falls das Muster gefunden wurde echo ausgefuehrt und die alle neuen Zeilen als erstes Argument uebergeben expect_out(buffer)\n.
(expect umgeht die tatsache das grep ziemlich viel puffered, sobald es in eine pipe schreibt indem es pty's benutzt. Das ist eigentlich der Hauptgrund fuer expect in diesem Beispiel, die while-Schleife und das sleep gingen ja auch in der shell)
Code:
expect -c 'spawn -noecho bash -c "tail -f src | grep pattern" ; while "1" { expect { -re ".*" {exec echo expect_out(buffer)\n} } sleep 60 }'
Lesezeichen