- 论坛徽章:
- 0
|
非常感谢楼主的源程序,一直对菜单很感兴趣,通过这个程序大致明白了一些知识。
原程序在bash上似乎不能正常运行,于是我边学习边修改,顺便加了一些注释,去掉了业务处理部分,所以仅剩一个空壳了 现在该程序已经能顺利在我的"GNU bash, version 3.1.17"上正常运行了。
原计划再完善完善的,但是周末看了一些帖子感觉自己要学的方面实在太多,这个东东就等以后需要用的时候再去完善吧,
厚着脸皮将此注释版也发上来,希望初学者能更快理解
部分代码
- #显示相关函数
- TTY=`tty`
- #反显函数,$1为1时反显,为0时恢复正常显示
- reversevideo()
- {
- case $1 in
- 1)echo -ne "\033[7m\c";;
- 0)echo -ne "\033[0m\c";;
- esac
- }
- #设置graphics mapping.$1为1设置为vt100,此时printf "q"显示为横线,打印多个q则显示为一连贯的横线;为0设置为默认mapping,此时printf "q"显示为q
- #l:┌ q:─ k:┐ m:└ j:┘ x:│
- graphmap()
- {
- case $1 in
- 1)echo -ne "\033(0\c";;
- 0)echo -ne "\033(B\c";;
- esac
- }
- #设置terminal模式,1读取单个字符,0恢复为行缓冲模式
- termmode()
- {
- #UNIX终端默认使用行缓冲,必须要输入回车才会返回.需要读取单个字符的时候,使用下面命令设置终端:
- #stty raw -echo
- #如要恢复到以前的状态,则需要:
- #stty -raw echo
- #man stty
- case $1 in
- #读取单个字符
- 1)stty raw -echo;;
- #恢复行缓冲模式,也可用stty -raw echo
- 0)stty sane;;
- esac
- }
复制代码 |
|