天天看点

shell 回车键判断_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键;