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 grep
o 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, btmon
y 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).
btmon
implementa 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?