マウスの左ボタンを押しながらBashスクリプトを繰り返し実行するには?

マウスの左ボタンを押しながらBashスクリプトを繰り返し実行するには?

xdotool click --delay 40 1そのため、マウスの左ボタンを繰り返しクリックするために使用するコマンド()があります。現在、スクリプトは次のように設定されています。

mouse="$(xinput --list | awk -F 'id=|\\[' '/mouse|Mouse/ {print $2}')"
mouse="${mouse//[[:space:]]}"

while :; do
    state="$(xinput --query-state 13)"

    while [[ "$state" == *"button[1]=down"* ]]; do
            xdotool click --delay 40 1
        done
done

マウスの左ボタンを押すとスクリプトが動作し、アクティブになりますが、マウスの左ボタンを放した後も繰り返し実行されます。このスクリプトを期待どおりに実行するには停止する必要があると思います。

xdotool click --delay 40 1

注文するたびにbutton[1]=up。ところで問題はどうするか分からないということです。誰もがこの問題を解決するのに役立つことができればとても感謝します。

答え1

whileループはステータスを要求しません。

while [[ "$state" == *"button[1]=down"* ]]; do
        xdotool click --delay 40 1
    done

$stateが設定されていると変更できません。 whileの代わりにifを試してください。

関連情報