यह एक स्क्रिप्ट बनाने की मेरी कोशिश है जो वीडियो देखते समय स्क्रीन ब्लैंकिंग को रोकने के लिए "माउस मूव" का उपयोग करेगी। मैं उच्चतम CPU% प्रक्रिया के लिए मान का उपयोग करने की उम्मीद कर रहा हूं top
और यदि CPU उपयोग 5% से अधिक है, तो माउस चाल होना चाहिए।
#!/usr/bin/env bash
sleep_period=60s
while true; do
if (( $(top -bn 1 | sed -nrs '8p' | awk '{ print $9 }') -gt 5 )); then
while (( $(top -bn 1 | sed -nrs '8p' | awk '{ print $9 }') -gt 5 )); do
xdotool mousemove 0 100
xdotool mousemove 0 50
sleep ${sleep_period}
done
else
sleep ${sleep_period}
fi
done
दुर्भाग्य से, यह काम नहीं करता है। त्रुटियां इस प्रकार हैं:
[07:20 PM] /bin $ noo.sh
/home/vasa1/bin/noo.sh: line 6: ((: 0.0 -gt 5 : syntax error: invalid arithmetic operator (error token is ".0 -gt 5 ")
/home/vasa1/bin/noo.sh: line 6: ((: 6.4 -gt 5 : syntax error: invalid arithmetic operator (error token is ".4 -gt 5 ")
मैं यह कैसे तय करुं? (कृपया ध्यान दें कि मैं स्क्रिप्टिंग में अनुभवी नहीं हूं।)
यहाँ उत्तर के आधार पर, मैंने एक साथ रखा:
#!/usr/bin/env bash
sleep_period=5m
while true; do
if [[ $(top -bn 1 | sed -nrs '8p' | awk '{ print int($9) }') -gt 8 ]]; then
while [[ $(top -bn 1 | sed -nrs '8p' | awk '{ print int($9) }') -gt 8 ]]; do
xset -dpms; xset s off
xset +dpms; xset s on
sleep ${sleep_period}
done
else
sleep ${sleep_period}
fi
done
फिर, मैंने उबंटू फ़ोरम में इस कोड को रिपोर्ट किया और वापेल ने इस पर आगे काम किया। नीचे Vaphell का संस्करण है और वह है जो मैं उपयोग कर रहा हूं:
#!/usr/bin/env bash
sleep_period=5m
while true; do
if top -bn 1 | awk 'NR==8 { exit !($9>8); }'; then
xset -dpms; xset s off
xset +dpms; xset s on
fi
sleep ${sleep_period}
done
xset
राफेल द्वारा सुझाए अनुसार उपयोग करना समाप्त कर दिया।
-gt
पूर्णांक बिंदुओं की अपेक्षा करता है, फ़्लोटिंग पॉइंट नहीं। और मुझे यकीन है कि तुम क्यों प्रयोग कर रहे हैं नहीं कर रहा हूँ((
...))
बल्कि सिर्फ तुलना में[
...]
। या आप ट्रिगर के रूप में CPU% का उपयोग क्यों कर रहे हैं ... या यहां तक कि आप किसी शाप कार्यक्रम से CPU% का उपयोग शीर्ष पर क्यों कर रहे हैं जैसे कुछ के बजाय शीर्ष परps -heo %C --sort -%cpu | head -1