shell版俄罗斯方块一:方向键获取 分类: shell版俄罗斯方块 2015-07-27 09:00 114人阅读 评论(0) 收藏

按键通常不是由单个字符构成:如方向键上(^[[A)、下(^[[B)、左(^[[C)、右(^[[D),退出键ESC(^[);方向键的前两个字符的表示方式和ESC的表示方法是一样的。

shell脚本如下:

#!/bin/bash

#Program:
#     this is a program for test key
#History:
#     Walker    version:first

GetKey()
{
	aKey=(0 0 0)

        cESC=`echo -ne "\033"`  #注意,这不是单引号,是ESC下面那个,里面的指令会先执行,并将结果赋值

	while :#':'表示永远为真
	do
		read -s -n 1 key #读取按键,每次只能读取一个ASCII字符
		echo $key
#		echo XXX

    	        aKey[0]=${aKey[1]}
		aKey[1]=${aKey[2]}
		aKey[2]=$key


		if [[ ${aKey[0]} == $cESC && ${aKey[1]} == "[" ]]
		then
			if [[ $key == "A" ]];then echo KEYUP#方向键判断
			elif [[ $key == "B" ]];then echo KEYDOWN
			elif [[ $key == "D" ]];then echo KEYLEFT
			elif [[ $key == "C" ]];then echo KEYRIGHT
			fi
		fi

	done
}

GetKey


posted @ 2015-07-27 09:00  朱传林  阅读(231)  评论(0编辑  收藏  举报