![Bash 스크립트는 변수 생성/사용을 허용하지 않습니다.](https://linux55.com/image/207128/Bash%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%8A%94%20%EB%B3%80%EC%88%98%20%EC%83%9D%EC%84%B1%2F%EC%82%AC%EC%9A%A9%EC%9D%84%20%ED%97%88%EC%9A%A9%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
현재 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에서 실행 중입니다.
- 지금까지 키를 올바르게 읽고 변환했지만 변수만 문제를 일으키고 있습니다.