Как проверить, больше ли значение, чем или равно другому?

#!/usr/bin/env bash
while true; do
    if xprintidle | grep -q 3000; then
      xdotool mousemove_relative 1 1
    fi
done

В настоящее время я могу проверить если xprintidle равно 3 000 и затем если это, выполниться xdotool. Но я хочу проверить если xprintidle больше или равен, чем 3 000, и затем выполнитесь xdotool. Как я могу достигнуть этого?

4
задан 2 June 2018 в 01:04

3 ответа

if [ $(xprintidle) -ge 3000 ]; then
  [...stuff...]

Вот быстрое объяснение:

  • gt - больше, чем
  • GE - больше или равный, чем
  • $ (...) становится выводом команды в круглых скобках
4
ответ дан 23 November 2019 в 11:35

Можно использовать 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

Я добавил a sleep звоните в цикл для приостановки в течение половины секунды, каждое выполнение – адаптирует его по мере необходимости.

9
ответ дан 23 November 2019 в 11:35

Чтобы сказать, больше ли число или равно другому, можно использовать -ge. Таким образом, Ваш код может быть похожим

#!/usr/bin/env bash
while true; do
    if [[ $(xprintidle) -ge 3000 ]]; then
        xdotool mousemove_relative 1 1
    fi
done
4
ответ дан 23 November 2019 в 11:35

Другие вопросы по тегам:

Похожие вопросы: