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入力をキー入力に変換することです。ただし、同じキーは事前に押したキーに応じて異なるキー入力を出力する必要があります。

追加情報

  • 現在、Ubuntu 22.04で実行されています。
  • これまでキーを正しく読み込んで変換しましたが、変数だけが問題を引き起こしています。

関連情報