因此,我有一个命令 ( 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。