내 GUI에서는 입력한 키를 표시하는 대신 각 키보드 키(적어도 문자, 숫자 및 기호)를 눌렀을 때 사용자 정의 텍스트의 다음 문자가 표시되기를 원합니다.
예를 들어 텍스트를 다음과 같이 설정하면
Bash는 sh 호환 명령 언어 해석기입니다.
나는 다음을 입력합니다:
29vVXKJmTQ3JXJ3jvUNHGRmC4A4ncK
내가 보고 싶은 것:
Bash는 sh와 쉼표와 호환됩니다.
(그리고 다음 키를 누르면 어떤 키인지에 관계없이 "n"이 표시되어야 합니다.)
입력한 키와 사용자 정의 텍스트를 매핑하려면 어떤 전략을 사용할 수 있나요?
답변1
공유하고 즐기세요:
#!/bin/bash
TYPEDSTRING=""
COVERSTRING="hello world"
POS=0
while IFS= read -r -n 1 -s X
do
if [ "$X" == "" ]
then
break
fi
if [ "$X" == $'\x7F' ]
then
echo -n -e '\b \b'
if [ "$POS" != "0" ]
then
POS=$(( (POS-1) ))
TYPEDSTRING="${TYPEDSTRING:0:POS}"
fi
else
echo -n "${COVERSTRING:POS:1}"
TYPEDSTRING="${TYPEDSTRING}$X"
POS=$(( (POS+1) ))
fi
done
echo
echo "'$TYPEDSTRING'"