Sto cercando di scrivere uno script bash che interroga btmon per le connessioni del dispositivo. Ho una soluzione funzionante, ma è assurdamente lento, e sembra che il problema sia che grep sia molto lento ad uscire dopo aver trovato una partita (circa 25 secondi). Cosa posso fare per accelerare grepo evitare di usarlo del tutto?
#!/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
modifica: per chiarire, btmoned è uno strumento di monitoraggio bluetooth che fa parte della suite Bluez, e cec-client è un'utilità che è impacchettata con libCEC per inviare comandi attraverso il bus seriale HDMI-CEC (tra le altre cose).
btmonimplementa il buffering stesso, nel qual caso sei sfortunato.
btmon? sei sicuro che non sia solo una questione di buffering?