shell 判斷讀入字符是回車鍵還是方向鍵、tab鍵

get_char()
{
SAVEDSTTY=`stty -g`

stty -echo
stty raw
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
c=' '
while [ 1 ]
do
c=`get_char`
echo "$c"
case "$c" in
'^M' ) echo "enter" ;;
' ^I' ) echo "tab" ;;
'q' ) exit 1 ;;
'^[' ) echo "possible arrow keys"
secondchar=`get_char`
echo "secondchar:$secondchar"
thirdchar=`get_char`
echo "thirdchar:$thirdchar"
case "$thirdchar" in
'A' ) echo UP ;;
'B' ) echo DOWN ;;
'D' ) echo LEFT ;;
'C' ) echo RIGHT ;;
* ) echo "third *" ;;
esac ;;
esac
done

 

注意: 1、"^M"爲ctrl+v和ctrl+m;

         2、"^["爲ctrl+v和ctrl+[;

         3、"^I"爲tab鍵;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章