如何检查一个值是否大于或等于另一个值?

如何检查一个值是否大于或等于另一个值?
#!/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

相关内容