In dem Link habe ich keine Endlosschleife gesehen. Kannst du genauer beschreiben, warum das so gut sein soll?
Mir als Programmierer rollen sich die Fußnägel hoch, wenn ich eine Endlosschleife sehe. Irgendeine Art Abbruchbedingung muss da rein oder willst du jedes Mal das Skript mit
kill
beenden, wenn was ist?
Dazu würde ich das Skript auch automatisch beenden lassen, wenn die Pipe warum auch immer nicht (mehr) verfügbar ist. Idealerweise hinterlässt das auch einen Log-Eintrag.
Es fehlt auch irgendwas, um die Schleife etwas einzubremsen. Wenn ich das richtig deute, macht sie
aktives Warten, was eine Verschwendung von Ressourcen ist. Oder blockt
data="$(cat /home/ich/pipe/mypipe)";
die Ausführung bis was über die Pipe reinkommt? Es reicht doch, wenn nur ein Mal in der Sekunde geschaut wird, ob Daten rein kommen (
sleep 1
).
Ideal wäre, wenn man einen Interrupt, Event Trigger oder so was setzen kann, sodass das Skript quasi nur dann aufwacht, wenn es was zu tun gibt. Ich weiß aber von Bash zu wenig, um dazu Tipps geben zu können.
Es ist auch vielleicht eine gute Idee, statt einer Endlosschleife systemd zu verwenden, das das Skript alle x Sekunden startet. Damit ist man ziemlich flexibel. Das könnte aber auch mit Kanonen auf Spatzen schießen sein.