使用 shell 脚本如果使用量为 0 则关闭顿悟浏览器

close epiphany browser if usage is 0 using shell script

我写了一个可执行的 shell 脚本,如果浏览器使用率是 0,它会在我的 raspberry pi 上关闭顿悟浏览器。如果我 运行 下面的命令我看到如果正在使用浏览器,则值大于 0,如果未使用,则为 0:

top -b -n 1 | grep epiphany-browse | awk '{ totuse = totuse +  } END { print totuse }'

但是把它放在一个脚本中它不会终止浏览器进程:

while true

sleep 60s

do

if [ top -b -n 1 | grep epiphany-browse | awk '{ totuse = totuse +  } END { print totuse }' -eq 0 ]

then

killall epiphany-browser

fi

done

尝试使用周围的 $(...)

if [ $(top -b -n 1 | grep epiphany-browse | awk '{ totuse = totuse +  } END { print totuse }') -eq 0 ]; then ...

您的脚本可能已计算到 totuse 中,因此它永远不会完全为零。

这是一个古老的常见问题解答;解决方案是使用与自身不匹配的正则表达式。

您可能还想修复 useless use of grep | awk;我也很想重写 Awk 脚本以直接使用 true 或 false 退出,这样它就可以直接从 if 中使用,尽管这会使 Awk 部分稍微复杂一些。

if top -b 1 | awk '/[e]piphany-browse/{ totuse +=  }
        END { exit 1-(totuse==0) }'; then
    killall epiphany-browser
fi