Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
#!/bin/bash
# Прочитать 1 символ.
# -s отключить эхо, -n1 только один символ, -r считывать "\" не дожидаясь экранирования
while read -s -n1 key
do
...
done
# Коды клавиш.
arrowup='\[A'
arrowdown='\[B'
arrowrt='\[C'
arrowleft='\[D'
insert='\[2'
delete='\[3'
SUCCESS=0
далее, после считывания, сравниваем кодами:read -n3 key # Прочитать 3 символа.
echo -n "$key" | grep "$insert"
if [ "$?" -eq $SUCCESS ]
then
echo "Нажата клавиша \"Insert\"."
exit $SUCCESS
fi
'\[1;2B', где '\[1;' — начало escape-последовательности, 2B — коды клавиш, 2 — SHIFT, B — ARR_DOWNseq='\[1'
shift_down=';2B'
read -n3 key # Прочитать 3 символа.
echo -n "$key" | grep "$arrowup"
[ "$?" -eq $SUCCESS ] && : # своя обработка
echo -n "$key" | grep "$arrowdown"
[ "$?" -eq $SUCCESS ] && :
echo -n "$key" | grep "$arrowrt"
[ "$?" -eq $SUCCESS ] && :
echo -n "$key" | grep "$arrowleft"
[ "$?" -eq $SUCCESS ] && :
echo -n "$key" | grep "$seq"
if [ "$?" -eq $SUCCESS ] ; then
read -n3 key
echo -n "$key" | grep "$shift_down"
[ "$?" -eq $SUCCESS ] && echo "Pressed Shift-Down"
#etc
fi
read -n3 key на read -n1 key можно вести обработку нажатия и печатных символов, затем, среди них обнаруживать escape-последовательности.
Сетевая игра на bash: шахматы