( bucko | 2022. 05. 24., k – 09:01 )

Megnéztem a lemonbar forrását - bocsánat, tévedtem.

A fifo-val működő megoldásnak teljesen más oka van.  A fifo ebben az esetben csak egy buffer, amibe aszinkron lehet írogatni a parancsokat, majd egyszerre bezuttyantani őket a lemonbar felé.

{
...
echo parancs1 >fifo &
...
echo parancs2 >fifo &
...
cat fifo
} | lemonbar

A printf "%s\n" < fifo extra \n karaktert ír a parancsok után. Itt jobb a cat vagy a printf "%s".

Mégegyszer végigolvastam a kérdést. Talán egy kicsit túlbonyolítod a dolgot. A sleep nem alkalmas pontos időzítésre, nem így kellene megoldani, meg még lőni is rá. ;)

Inkább eseményvezéreltté kellene alakítani a programodat. A sleep lejárta is egy esemény, meg a hirtelen tennivaló is esemény - mindegyik írhat azonnal, ha kell.