मैं एक बैश स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो डिवाइस कनेक्शन के लिए btmon को पोल करता है। मुझे एक काम करने वाला समाधान मिल गया है, लेकिन यह बेतुका धीमा है, और ऐसा लगता है कि मुद्दा एक मैच (लगभग 25 सेकंड) खोजने के बाद बाहर निकलने के लिए बहुत धीमा है। मैं grepइसे पूरी तरह से तेज करने या इसके उपयोग से बचने के लिए क्या कर सकता हूं ?
#!/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
संपादित करें: स्पष्ट करने के लिए, btmonऔर ब्लूज़ सूट का एक ब्लूटूथ निगरानी उपकरण है, और cec-client एक उपयोगिता है जिसे HDMI-CEC सीरियल बस (अन्य चीजों के बीच) में आदेश जारी करने के लिए libCEC के साथ पैक किया गया है।
btmonस्वयं बफिंग लागू हो, जिस स्थिति में आप भाग्य से बाहर हैं।
btmonआउटपुट कितना "सामान" करता है? क्या आप सुनिश्चित हैं कि यह केवल बफरिंग का मामला नहीं है?