buffering pipes

Nick Demou ndemou at gmail.com
Mon Apr 16 15:44:43 EEST 2007


On 4/16/07, Nick Demou <ndemou at gmail.com> wrote:
> [...]
> έτσι νόμισα κι εγώ αλλα δυστηχώς εκτελεί το process που θα δεχθεί το
> input stream κατευθείαν και μετά έχεις πλήρη έλεγχο για τον ρυθμό με
> τον οποίο θα του προωθήσει το stream (π.χ. μονομιάς στο τέλος)
> [...]
> Δοκίμασα αυτό:
> # echo "starting wget `date`"; wget -qO - www.digg.com | bfr -m100%
> -i100% | echo "starting process to accept input `date`" ; echo "all
> done at `date`"

παπαριές δοκίμασα παραπάνω :-)
απ' ότι φαίνεται αν γράψεις:
prog1 | prog2 | prog3
και τα τρία εκινούνται ούτως ή άλλως ταυτόχρονα από το bash το οποίο
ταυτόχρονα συνδέει τα stdin/out τους κατάλληλα (και εκ των υστέρων
φυσικά μου φένεται απολύτως λογικό)

Οπότε η λύση ειναι αναγκαστικά το script. π.χ. σαν αυτό:
---------------------------------------------
#!/bin/bash

TMPF="/tmp/buf`cat /proc/sys/kernel/random/uuid`"
#echo "Start collecting input `date`"

while read BUFFER
do
        echo "$BUFFER" >> $TMPF
done

#echo "Start generating output `date`"
cat $TMPF | my_program
rm -f $TMPF
---------------------------------------------




More information about the Linux-greek-users mailing list