如何让 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 设置后,无法更改....尝试使用 if 而不是 while。

相关内容