Linux Mint Corners 음악 시퀀스 연관 배열

Linux Mint Corners 음악 시퀀스 연관 배열

나는 다음을 사용하는 스크립트를 작성하고 있습니다.핫 코너는 코너 위로 마우스를 가져갈 때 특정 음을 재생하고 음악 시퀀스에 따라 특정 명령을 수행합니다.

왼쪽 아래에서 -d, b-오른쪽에서 -e, 왼쪽 위에서 -g, 오른쪽 위에서 -b 매개변수를 사용하여 스크립트를 호출하면 시퀀스가 ​​파일(for_hot)에 추가되고 시퀀스를 내 연관 배열 비교와 비교합니다. 시퀀스가 인식되면 뮤지컬 B''가 성공적으로 재생됩니다.

질문 2개:

때로는 명령이 이행되지 않는 경우도 있습니다.

전원을 끌 수 없습니다.

이게 스크립트야

#!/bin/bash

#switch###############################
case "$1" in
-d) play -q -n synth 3 pluck 293.665 &
sleep 0.5
echo -n "d" >> ~/bin/for_hot;
;;
-e) play -q -n synth 3 pluck 311.127 &
sleep 0.5
echo -n "e" >> ~/bin/for_hot;
;;
-g) play -q -n synth 3 pluck 391.995 &
sleep 0.5
echo -n "g" >> ~/bin/for_hot;
;;
-b) play -q -n synth 3 pluck 466.164 &
sleep 0.5
echo -n "b" >> ~/bin/for_hot;
;;
esac
######################################

#midi mappings########################
declare -A commands
commands=( 
["egbd"]="firefox -n" 
["ebgb"]="idea" 
["ebb"]="notify-send "$instr "" 
["egdgb"]="echo pass | sudo -S poweroff"
["ee"]="nemo /home/mintbwoy");
######################################


s=$(<~/bin/for_hot);

for pattern in "${!commands[@]}";
do
echo "$pattern - ${commands["$pattern"]}";

if [[ "$s" == *"$pattern"* ]]
then
echo -n "" > ~/bin/for_hot;
play -q -n synth 3 pluck 932.328 &
var=$(${commands["$s"]});
$var;
notify-send "[$pattern] = ${commands["$pattern"]} "$var"";
fi

done
######################################

관련 정보