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 grep
o 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, btmon
ed è 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).
btmon
implementa il buffering stesso, nel qual caso sei sfortunato.
btmon
? sei sicuro che non sia solo una questione di buffering?