使用 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
我写了一个可执行的 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