[linux] Re: Bufferlengte van een redirect aanpassen
Wybo Dekker
wybo op servalys.nl
Do Feb 21 17:29:36 CET 2008
On Thursday 21 February 2008 16:31:08 Paul Slootman wrote:
> On Thu 21 Feb 2008, Wybo Dekker wrote:
> > ja, inderdaad, en dat is dus het verschil tussen less en tail -f; die
> > laatste heeft geen linefeed nodig.
>
> WTF?
Eh... waar staat dit voor?
> Als het commando waar de teksten uitkomen z'n buffers niet flusht,
> dan maakt het niet uit waarmee je de output file probeert te lezen.
>
> Vergelijk:
>
> perl -e 'print "een "; sleep 5; print "twee\n";'
> perl -e '$| = 1; print "een "; sleep 5; print "twee\n";'
Je hebt gelijk!
Maar toch begrijp ik dan iets niet. Maak een script genaamd `commando' met
daarin:
#!/bin/sh
while true; do
echo -n `date`
sleep 1
done
Run dat script op de achtergrond en redirect de output naar een file `log':
$ sh commando > log &
En doe tail -f op die log:
$ tail -f log
Je ziet dan om de seconde de output met de output van `date' verlengd worden,
zonder linefeeds.
Ik dacht dat tail detecteerde waar z'n input vandaan kwam en dat-ie de
betreffende shell flushte. Maar bij nader inzien: tail zou dan moeten
uitzoeken wie die log genereert... dat zal dus wel niet. Maar wat gebeurt er
dan wel??
--
Wybo
More information about the Linux
mailing list