按键获取:
向上 ^[[A
向下 ^[[B
向左 ^[[D
向右 ^[[C
其中 ^[为ESC键。
按键获取的具体shell代码如下所示:
#! /bin/bashGetKey(){ akey=(0 0 0) #数组 cESC=`echo -ne "\033"` #非打印字符 cSpace=`echo -ne "\040"` while : do read -s -n 1 key echo $key echo XXX akey[0]=${akey[1]} akey[1]=${akey[2]} akey[2]=${key} if [[ $key == $cESC && ${akey[1]} == $cESC ]] #双方括号 shell条件测试 then MyExit elif [[ ${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
俄罗斯方块棋盘绘制:
首先关注几个光标效果:
\033[0m 关闭所有属性 \033[1m 设置高亮度 \033[4m 下划线 \033[5m 闪烁 \033[7m 反显 \033[8m 消隐
\033[30m -- \033[37m 显示前景色
\033[40m -- \033[47m 显示背景色