#!/usr/bin/env bash
while true; do
if xprintidle | grep -q 3000; then
xdotool mousemove_relative 1 1
fi
done
目前,我可以检查是否xprintidle
等于 3000,如果是,则执行xdotool
。但我想检查是否xprintidle
大于或等于 3000,然后执行xdotool
。我该如何实现呢?
答案1
if [ $xprintidle -ge 3000 ]; then
[...stuff...]
以下是一个简单的解释:
- GT- 比...更棒
- 格- 大于或等于
- $(...)成为括号内命令的输出
答案2
您可以使用bash
算术扩展直接比较整数:
#!/usr/bin/env bash
while :; do
(( $(xprintidle) >= 3000 )) && xdotool mousemove_relative 1 1
sleep 0.5
done
如果你只想要单个命令,&&
这是一个简单的方法。或者,使用if
:
#!/usr/bin/env bash
while :; do
if (( $(xprintidle) >= 3000 )); then
xdotool mousemove_relative 1 1
fi
sleep 0.5
done
我添加了一个sleep
循环调用,以便每次运行时暂停半秒钟 - 根据需要进行调整。
答案3
要表示数字是否大于或等于其他数字,您可以使用-ge
。因此您的代码可能看起来像
#!/usr/bin/env bash
while true; do
if [[ $(xprintidle) -ge 3000 ]]; then
xdotool mousemove_relative 1 1
fi
done