Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: jenikosft 14 Dubna 2011, 11:11:46

Název: Zpracování datového proudu [vyřešeno]
Přispěvatel: jenikosft 14 Dubna 2011, 11:11:46
Ahoj, potřebuji zpacovávat proud dat, tak aby se můj script spustil pokaždé když v něm něco přibide...
Vypadá to asi takhle
Kód: [Vybrat]
cat /cesta/ke/streamu | grep neco | muj script když je ale obsah mého scriptu
Kód: [Vybrat]
echo "Neco pribylo", tak bych chtěl aby se pokaždé když něco přibyde vytisklo - "Neco pribilo" - jak na to?
Název: Re: Zpracování datového proudu
Přispěvatel: daysleeper 14 Dubna 2011, 12:01:12
?
Kód: [Vybrat]
tail -f stream | while read foo; do echo neco pribylo; done
Název: Re: Zpracování datového proudu
Přispěvatel: jenikosft 14 Dubna 2011, 13:07:12
tvrďácký, dík moc...
Název: Re: Zpracování datového proudu [vyřešeno]
Přispěvatel: jenikosft 14 Dubna 2011, 13:24:28
Mužu se zeptat, jak teda vypíšu, to co přibilo?
Název: Re: Zpracování datového proudu [vyřešeno]
Přispěvatel: MacHala 14 Dubna 2011, 14:06:14
spis pribylo, ne?
Kód: [Vybrat]
tail -f stream | while read foo; do echo tohle je hlavni smycka zpracovavajiciho programu; echo $foo ; echo 'za $foo se dosadil precteny radek ze streamu'; done
Název: Re: Zpracování datového proudu [vyřešeno]
Přispěvatel: jenikosft 15 Dubna 2011, 11:29:15
tak aby toho nebylo málo, stream mi teče z programu a když dám
Kód: [Vybrat]
program | while read foo; do echo tohle je hlavni smycka zpracovavajiciho programu; echo $foo ; echo 'za $foo se dosadil precteny radek ze streamu'; donetak to sice nakonec vyteče ale až za nějakou dobu a všechno pohromadě, když si pustím jen program tak ty srandy přibývají mnohem rychleji... čím to?
Název: Re: Zpracování datového proudu [vyřešeno]
Přispěvatel: MacHala 15 Dubna 2011, 17:53:58
ocividne tam bude buffer...

doporucuji precist
http://www.pixelbeat.org/programming/stdio_buffering/
http://www.groupsrv.com/linux/about160147.html

necetl jsem to sam cele (ale na prvni pohled jsem na to nenarazil), castecne jde ovlivnit buffer pipeliny i pomoci
Kód: [Vybrat]
ulimit -p