LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 663|回复: 1

[求助]大家来帮忙...

[复制链接]
发表于 2007-6-19 08:36:57 | 显示全部楼层 |阅读模式
最近闲着没事,写了个脚本,运行后会在屏幕中间echo一个"#"号,然后按 上下左右 键可以移动它, 不过我想让它闪烁, 想了很久没有想出来,希望高手指点一下.谢谢
  1. #!/bin/bash
  2. MaxLine=`tput lines`
  3. MaxCol=`tput cols`
  4. line=$(( MaxLine/2 ))
  5. col=$(( MaxCol/2 ))
  6. tput civis      #hide mouse
  7. tput sc         #save mouse point
  8. tput cup $line $col
  9. echo -ne "\033[40;31m#"

  10. MyExit()
  11. {
  12. tput cup 0 0
  13. echo "Esc                                                               "
  14. tput rc         #
  15. tput cnorm      #set mouse to saved point
  16. exit
  17. }

  18. MyMove()
  19. {
  20. tput cup 0 0
  21. echo "$1                                                                "
  22. tput cup $line $col
  23. echo ' '
  24. case $1 in
  25.   up) ((line--))
  26.       [ $line -lt 0 ] && line=$[MaxLine-2]
  27.   ;;
  28.   down) ((line++))
  29.         [ $line -gt $[MaxLine-2] ] && line=0
  30.   ;;
  31.   left) ((col--))
  32.         [ $col -lt 0 ] && col=$[MaxCol-1]
  33.   ;;
  34.   right) ((col++))
  35.          [ $col -ge $MaxCol ] && col=0
  36.   ;;
  37. esac
  38. tput cup $line $col
  39. echo '#'
  40. }

  41. ESC=$(echo -ne "\33")
  42. TMP=(0 0 0)

  43. while
  44.     read -sn 1 Key
  45. do
  46.         TMP[0]=${TMP[1]}
  47.         TMP[1]=${TMP[2]}
  48.         TMP[2]=$Key

  49.         if [ "$Key" ]; then
  50.            [ "$Key" == "$ESC" -a "${TMP[1]}" == "$ESC" ] && MyExit
  51.         fi

  52.         if [[ ${TMP[0]} == $ESC && ${TMP[1]} == "[" ]]; then
  53.          case $Key in
  54.            A) #echo Up
  55.               MyMove up
  56.            ;;
  57.            B) #echo Down
  58.               MyMove down
  59.            ;;
  60.            C) #echo Right
  61.               MyMove right
  62.            ;;
  63.            D) #echo Left
  64.               MyMove left
  65.            ;;
  66.          esac
  67.         fi
  68. done
复制代码
 楼主| 发表于 2007-6-20 09:44:04 | 显示全部楼层
已解决
                     
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表