Bash 스크립트는 변수 생성/사용을 허용하지 않습니다.

Bash 스크립트는 변수 생성/사용을 허용하지 않습니다.

현재 xdotool을 사용하여 MIDI 입력을 키 입력으로 변환하려는 bash 스크립트로 인해 어려움을 겪고 있습니다.

#!/bin/bash
aseqdump -p "USB MIDI cable" | \
while IFS=" ," read src ev1 ev2 ch label1 data1 label2 data2 rest; do
    case "$ev1 $ev2 $data1" in
        "Note on 48" ) if[$octave=0] 
                         then 
                           xdotool key 9; octave=1 
                       elif[$octave=1] 
                         then xdotool key 1 
                       else 
                           xdotool key 0; octave=1 
                       fi ;;
        "Note on 36" ) xdotool key 9; octave=0 ;;

    esac
done

내 질문에: 변수 생성을 올바르게 이해했다면 "Note 36"에 해당하는 키를 누르면 옥타브를 0으로 설정해야 하지만 "Note 48"의 if 문에서는 이를 인식하지 못합니다. 또한 더 간단하게 사용

if[$octave=1] then xdotool key 1 fi ;;

제공된 변수에는 적용할 수 없습니다.

따라서 궁극적으로 스크립트가 수행해야 하는 작업은 장치의 MIDI 입력을 키 입력으로 변환하는 것입니다. 단, 동일한 키는 미리 누른 키에 따라 다른 키 입력을 출력해야 합니다.

추가 정보

  • 현재 우분투 22.04에서 실행 중입니다.
  • 지금까지 키를 올바르게 읽고 변환했지만 변수만 문제를 일으키고 있습니다.

관련 정보