"Real time" bash ciklus - nem lehetséges?

Van egy ilyen ciklusom:

for sor in $(parancs1); do
echo "$sor"
done

Félóráig fut anélkül, hogy egy sort is kiirna, pedig a "parancs1" egy "line buffered" parancs, és átlag percenként produkál egy sort.
Úgy néz ki, mintha a $(...) konstrukció lenne bufferelve, és amig a buffer meg nem telik, addig a "sor" változóhoz nem rendel értéket.

Meg lehet valahogy oldani, hogy a ciklus "real-time", azaz max. sor bufferelt legyen, vagyis azonnal adjon értéket a "sor" változónak, amint parancs1 előállít egy sort?

Hozzászólások

ez nem jó? :

$ parancs1 | while read sor ; do echo "$sor"; done

Úgy működik, ahogy kell: a shell elindít egy másikat $(), megvárja, mit ad vissza, és a kimenetét behelyettesíti, majd az így kapott lista minden elemére végrehajtja a ciklusban szereplő utasítást. A subshell hívásnak tehát be kell fejeződnie, mielőtt a behelyettesítés megtörténik, sőt az egész kimenetének, meg a ciklusnak bele kell férnie az aktuális parancsértelmező maximális parancssormértébe is.