屏保禁止脚本
Screen-saver inhibit script
当在 KDE4 中使用 Firefox 的 "plugin-container" Flash 播放器时,我想自动禁止屏幕保护程序。 original script不是我自己写的,但我稍微修改了一下。
#!/bin/sh
# Simple script to demonstrate D-Bus usage
while true
do
# read firefox plugin-container cpu usage
ret=$(top -b -n1 -u "$(whoami)" | gawk ' ~ /plugin-containe/ { SUM += }; END { print SUM }')
if [ -n "$ret" ] && [ "$ret" -gt 15 ]; then
idle_time=`qdbus org.kde.screensaver /ScreenSaver GetSessionIdleTime`
if [ "$idle_time" -gt 50 ]; then
qdbus org.kde.screensaver /ScreenSaver SimulateUserActivity
fi
fi
sleep 50
done
现在当我 运行 脚本时我得到这个错误:
/home/geo/bin/plugin-containe: line 7: [: 68.75: integer expression expected
我试图让 top 输出整数,但我做不到。
我该如何解决?
问候
乔治
如果 awk
输出是非整数值的原因,那么您可以使用 awk int()
函数将 SUM
的值截断为整数值(即int(SUM)
).
当在 KDE4 中使用 Firefox 的 "plugin-container" Flash 播放器时,我想自动禁止屏幕保护程序。 original script不是我自己写的,但我稍微修改了一下。
#!/bin/sh
# Simple script to demonstrate D-Bus usage
while true
do
# read firefox plugin-container cpu usage
ret=$(top -b -n1 -u "$(whoami)" | gawk ' ~ /plugin-containe/ { SUM += }; END { print SUM }')
if [ -n "$ret" ] && [ "$ret" -gt 15 ]; then
idle_time=`qdbus org.kde.screensaver /ScreenSaver GetSessionIdleTime`
if [ "$idle_time" -gt 50 ]; then
qdbus org.kde.screensaver /ScreenSaver SimulateUserActivity
fi
fi
sleep 50
done
现在当我 运行 脚本时我得到这个错误:
/home/geo/bin/plugin-containe: line 7: [: 68.75: integer expression expected
我试图让 top 输出整数,但我做不到。
我该如何解决?
问候 乔治
如果 awk
输出是非整数值的原因,那么您可以使用 awk int()
函数将 SUM
的值截断为整数值(即int(SUM)
).