Hozzál nekem a boltból egy lekváros buktát! Öööö.... :-D
Ha nem csukod be a szádat, akkor éhen maradsz!
Itt is ez a helyzet. Ha a fifo másik oldalán kukkoló ellenséggel nem beszélted meg, hogy az ööö... nálad a parancs vége, akkor még várakozni fog, hátha mondasz valamit.
A printf kezdetű sor kiolvassa a $fifo-ból az üzenet(ek)et, majd becsukja a száját, azaz küld egy EOF-ot a végén.
A programod egy fifo-n keresztül (a | is egy fifo, csak nincs neve) üzenget, de soha nem küldi az EOF-ot. Így aztán a lemonbar gondolkodok, gondolkodik és közben vár. Egy idő után rájön, hogy ez a hülye csak nem csukta be a száját és végrehajtja az olvasott utasításokat. ;)
Nem az a lényeg, hogy a parancsokat fifo-ban, fájlban vagy zacskóban gyűjtöd, hanem átadáskor jelezni kell a végét!