我有以下脚本:
#!/usr/bin/env bash
sleep_period=8m
while true; do
if ps -eo %C --sort -%cpu | head -2 | awk 'NR==2 { exit !($1>8); }'; then
notify-send 'CPU alert!' '......'
xdotool key shift
fi
sleep ${sleep_period}
done
但我不知道如何获取打印 % CPU 值而不是 的通知'......'
。
我正在使用 Lubuntu 13.10,已完全更新。
答案1
如果我正确理解你的逻辑,那么这样怎么样:
while true; do
highest_cpu="$(ps -eo %C --sort -%cpu | awk 'NR==2 {print $1}')"
if [ "$highest_cpu" -gt 8 ]; then
notify-send 'CPU alert!' "$highest_cpu"
...
fi
...
done
如果您需要非整数的 CPU 使用阈值,则以下仅 Bash 的解决方案应该有效:
if [[ "$highest_cpu" > 9.3 ]];then
...