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, grep
um 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 btmon
handelt 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.
btmon
Geräte selbst puffern, in welchem Fall Sie kein Glück haben.
btmon
ausgegeben? Sind Sie sicher, dass es nicht nur um das Puffern geht?