Estoy tratando de escribir un script bash que sondee btmon para las conexiones del dispositivo. Tengo una solución que funciona, pero es absurdamente lenta, y parece que el problema es que grep es muy lento para salir después de encontrar una coincidencia (alrededor de 25 segundos). ¿Qué puedo hacer para acelerar grepo evitar usarlo por completo?
#!/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
editar: para aclarar, btmony es una herramienta de monitoreo de bluetooth que es parte de la suite Bluez, y cec-client es una utilidad que está empaquetada con libCEC para emitir comandos a través del bus serie HDMI-CEC (entre otras cosas).
btmonimplementa el almacenamiento en búfer, en cuyo caso no tiene suerte.
btmon? ¿estás seguro de que no es solo una cuestión de almacenamiento en búfer?