首页 电脑 电脑学堂 查看内容

shell版俄罗斯方块一:方向键获取

2015-7-27 10:45 |原作者: 朱传林 1698 0

摘要: 按键通常不是由单个字符构成:如方向键上(^ view plaincopy#!/bin/bash#Program:#thisisaprogramfortestkey#History:#Walkerversion:firstGetKey(){aKey=(000)cESC=`echo-ne"33"`#注意,这不是单引号,是ESC ...
关键词: nbsp aKey echo key then 字符 方向 按键 elif Program

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

shell脚本如下:

  1. #!/bin/bash  
  2.   
  3. #Program:  
  4. #     this is a program for test key  
  5. #History:  
  6. #     Walker    version:first  
  7.   
  8. GetKey()  
  9. {  
  10.     aKey=(0 0 0)  
  11.   
  12.         cESC=`echo -ne "\033"`  #注意,这不是单引号,是ESC下面那个,里面的指令会先执行,并将结果赋值  
  13.   
  14.     while :  
  15.     do  
  16.         read -s -n 1 key #读取按键,每次只能读取一个ASCII字符  
  17.         echo $key  
  18. #       echo **  
  19.   
  20.                 aKey[0]=${aKey[1]}  
  21.         aKey[1]=${aKey[2]}  
  22.         aKey[2]=$key  
  23.   
  24.   
  25.         if [[ ${aKey[0]} == $cESC && ${aKey[1]} == "[" ]]  
  26.         then  
  27.             if [[ $key == "A" ]];then echo KEYUP#方向键判断  
  28.             elif [[ $key == "B" ]];then echo KEYDOWN  
  29.             elif [[ $key == "D" ]];then echo KEYLEFT  
  30.             elif [[ $key == "C" ]];then echo KEYRIGHT  
  31.             fi  
  32.         fi  
  33.   
  34.     done  
  35. }  
  36.   
  37. GetKey  

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部