마우스 왼쪽 버튼을 누른 상태에서 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를 사용해 보십시오.

관련 정보