Đây là nỗ lực của tôi để tạo một tập lệnh sẽ sử dụng "di chuyển chuột" để ngăn việc xóa màn hình trong khi xem video. Tôi hy vọng sẽ sử dụng giá trị cho quá trình% CPU cao nhất top
và nếu mức sử dụng CPU vượt quá 5%, việc di chuyển chuột sẽ xảy ra.
#!/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
Thật không may, nó không hoạt động. Các lỗi là như thế này:
[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 ")
Làm thế nào để tôi sửa lỗi này? (Xin lưu ý rằng tôi không có kinh nghiệm về kịch bản.)
Dựa trên các câu trả lời ở đây, tôi kết hợp lại với nhau:
#!/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
Sau đó, tôi đã báo cáo mã này tại Diễn đàn Ubuntu và Vaphell đã làm việc với nó hơn nữa. Dưới đây là phiên bản của Vaphell và là những gì tôi đang sử dụng:
#!/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
theo đề xuất của Raphael bên dưới.
-gt
mong đợi toán hạng nguyên, không phải dấu phẩy động. và tôi không chắc chắn lý do tại sao bạn đang sử dụng((
...))
thay vì chỉ[
...]
. hoặc tại sao bạn sử dụng CPU% làm trình kích hoạt ... hoặc thậm chí tại sao bạn trích xuất mức sử dụng CPU% từ một chương trình nguyền rủa như trên thay vì một cái gì đó nhưps -heo %C --sort -%cpu | head -1