Ich versuche, ein Bash-Skript zu schreiben, das btmon nach Geräteverbindungen abfragt. Ich habe eine funktionierende Lösung, aber sie ist absurd langsam, und es scheint, als ob das Problem darin besteht, dass grep nach der Suche nach einer Übereinstimmung nur sehr langsam beendet wird (ungefähr 25 Sekunden). Was kann ich tun, grepum die Nutzung zu beschleunigen oder ganz zu vermeiden?
#!/bin/bash
COUNTER=0
while :
do
until btmon | grep -m 1 '@ Device Connected'
do :
done
let COUNTER=COUNTER+1
echo on 0 | cec-client RPI -s -d 1
sleep 5
echo as | cec-client RPI -s -d 1
until btmon | grep -m 1 '@ Device Disconnected'
do :
done
let COUNTER=COUNTER-1
if [ $COUNTER -eq 0 ];
then echo standby 0 | cec-client RPI -s -d 1;
fi
done
Bearbeiten: Zur Verdeutlichung: Es btmonhandelt sich um ein Bluetooth-Überwachungstool, das Teil der Bluez-Suite ist, und cec-client ist ein mit libCEC gepacktes Dienstprogramm, mit dem Befehle (unter anderem) über den seriellen HDMI-CEC-Bus ausgegeben werden können.
btmonGeräte selbst puffern, in welchem Fall Sie kein Glück haben.
btmonausgegeben? Sind Sie sicher, dass es nicht nur um das Puffern geht?