Re: Programm zu line buffered output zwingen?

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Thu, 16 Feb 2012 14:22:19 +0100 (CET)

Till Toenges <tt(at)kyon.de> wrote:
> ich hatte letztens ein dummes Problem, bei dem ich die Ausgabe von einem
> Programm durch eine Pipe geschickt habe und zeilenweise auswerten
> wollte. Dummerweise wurde dann aber immer nur blockweise ausgewertet,
> was mir gar nichts genützt hat.
> [...]
> Meine Frage ist nun, ob es eine Möglichkeit gibt, ein Programm zur
> zeilenweisen Ausgabe zu zwingen, so als ob es auf einem TTY läuft.

Dafür habe ich folgenden Alias in meiner ~/.zshrc:

   alias intty='script -qt0 /dev/null'

Damit kann ich z.B. schreiben:

$ intty sometool -args | grep ...

Zum Glück brauche ich das aber eher selten. Viele Tools
haben eine Option für unbuffered oder line-buffered output
(z.B. cat -u), oder die Sache lässt sich anderweitig
umgehen.

> Ich
> habe erstmal nur einen Eintrag für FreeBSD gefunden, der schon genau in
> die Richtung geht, aber seit einem Jahr nicht weiter kommentiert wurde:
> http://www.freebsd.org/cgi/query-pr.cgi?pr=154915

Oha, das ist auch ein gruselig übler Hack, der in dem PR
vorgeschlagen wird. Der PR sollte geschlossen werden.

Das vom Autor angeführte Beispiel lässt sich ohnehin auf
vielfältige Weise lösen, z.B.:

$ iostat -x 1 | cat -un | grep ad1

oder:

$ iostat -x 1 | awk '{n+=1} /ad1/{print n, $0}'

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"IRIX is about as stable as a one-legged drunk with hypothermia
in a four-hundred mile per hour wind, balancing on a banana
peel on a greased cookie sheet -- when someone throws him an
elephant with bad breath and a worse temper."
        -- Ralf Hildebrandt
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 16 Feb 2012 - 14:22:40 CET

search this site