#!/usr/bin/env bash
while true; do
if xprintidle | grep -q 3000; then
xdotool mousemove_relative 1 1
fi
done
xprintidle
現在、 が3000 に等しいかどうかをチェックし、等しい場合は を実行できます。 しかし、 が3000 以上かどうxdotool
かをチェックし、 を実行したいです。 これを実現するにはどうすればよいでしょうか?xprintidle
xdotool
答え1
if [ $xprintidle -ge 3000 ]; then
[...stuff...]
簡単に説明すると次のようになります。
- gt- より大きい
- ge- より大きいか等しい
- $(...)括弧内のコマンドの出力になります
答え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
実行ごとに 0.5 秒間一時停止する呼び出しをループに追加しました。必要に応じて調整してください。
答え3
数値が他の数値より大きいか等しいかを判断するには、 を使用します-ge
。コードは次のようになります。
#!/usr/bin/env bash
while true; do
if [[ $(xprintidle) -ge 3000 ]]; then
xdotool mousemove_relative 1 1
fi
done