Estou tentando escrever um script bash que pesquisa btmon para conexões de dispositivos. Eu tenho uma solução funcional, mas é absurdamente lenta, e parece que o problema é grep, sendo muito lento para sair depois de encontrar uma correspondência (cerca de 25 segundos). O que posso fazer para acelerar grep
ou evitar o uso 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 esclarecer, btmon
e é uma ferramenta de monitoramento bluetooth que faz parte do pacote Bluez, e cec-client é um utilitário que acompanha o libCEC para emitir comandos através do barramento serial HDMI-CEC (entre outras coisas).
btmon
implementos sejam armazenados em buffer; nesse caso, você está sem sorte.
btmon
? Tem certeza de que não é apenas uma questão de buffer?