免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4696 | 回复: 16
打印 上一主题 下一主题

[SCO UNIX] UNIX系统下部分控制代码介绍及其应用 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-01-03 19:38 |只看该作者 |倒序浏览
一、 锁\开键盘代码
  代码定义:
    锁键盘:ESC[2h
    开键盘:ESC[2l
  应用:
  1.直接在键盘上顺序敲入Esc+[+2+h四键,键盘即被锁住。
  2.在C语言程序显示字符串中包含锁代码:printf(″%c[2h字串″,'\033')。
  3.在shell程序中用echo命令:echo″^[[2h字串″.注Esc键在vi编辑器中输入方法为:Ctrl+v,然后按一下Esc键,在屏幕上显示^[表示已输入。
  同样显示开锁代码则键盘被解锁。
  二、 删除字符代码
  代码定义:
  ESC[nX:清除光标右边n个字符,光标不动。
  ESC[K或ESC[OK&#59;清除光标右边全部字符,光标不动。
  ESC[1K:清除光标左边全部字符,光标不动。
  ESC[2K:清除整行,光标不动。
  ESC[J或ESC[OJ:清除光标右下屏所有字符,光标不动。
  ESC[1J:清除光标左上屏所有字符,光标不动。
  ESC[2J或ESCc:清屏,光标移到左上角。
  ESC[nM:删除光标之下n行,剩下行往上移,光标不动。
  ESC[nP:删除光标右边n个字符,剩下部分左移,光标不动。
  应用:
  一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
  三、 插入字符代码
  代码定义:
  ESC[n@:在当前光标处插入n个字符。
  ESC[nL:在当前光标下插入n行。
  应用:
  一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
  四、 移动光标
  代码定义:
  ESC[nA:光标上移n行。
  ESC[nB:光标下移n行。
  ESC[nC:光标右移n个字符。
  ESC[nD:光标左移n个字符。
  ESC[n&#59;mH :光标定位到第n行m列(类似代码ESC[n&#59;mf)。
  应用:
  1.一般用于自己开发的编辑器中或涉及行编辑的应用程序中。
  2.用shell编辑的菜单程序中定位光标,如:
  echo″^[[10&#59;30H请选择:[ ]^[[9C\c″,则先把光标定位到10行30列,然后显示″请选择[ ]″,最后光标右移9个符定位到中括号内等待用户响应。
  五、 定义字符显示属性代码
  代码定义:
  ESC[p&#59;p&#59;p;……m 其中属性值p可以是一个或多个,具体定义如下:
  p 含义
  0 清除所有属性
  1 高亮度显示
  4 下划线(如果硬件支持的话)
  5 闪烁(如果硬件支持的话)
  25 无闪烁
  7 反场(前背景交换)
  27 无反场
  8 隐藏(不显示)
  10 选择基本字体
  11 选择第一替代字体;让ASCII值小于32的字符显示时直接取自ROM芯片内
  12 选择第二替代字体;在作为ROM字符显示之前先压缩扩展高位ASCII码值
  30 前景黑色
  31 前景红色
  32 前景绿色
  33 前景褐色
  34 前景蓝色
  35 前景紫色
  36 前景蓝绿色
  37 前景白色
  38 开启下划线标志;白色前景用白色下划线
  39 关闭下划线标志
  40 背景黑色
  41 背景红色
  42 背景绿色
  43 背景褐色
  44 背景蓝色
  45 背景紫色
  46 背景蓝绿色
  47 背景白色
  应用:
  unix系统提供的setcolor命令是以行为单位改变颜色,在实际运用中有它的局限性,上面提到的控制代码在日常生活中用得最多,尤其适合于彩色弹出式立体菜单的设计。如我设计的中心机房值班程序,由于用了这些控制代码,界面非常友好。
  六、其它代码
  代码定义:
  ESC7:保存当前光标位置参数及字符属性。
  ESC8:恢复保存的光标位置参数及字符属性。
  \n :插入换行符
  \t :插入一个Tab键。
  \r :插入回车符。
  ^G :插入响铃符(pc嗽叭鸣叫一次),在vi中按Ctrl+g即可输入。
  \c :用于shell程序中,不换行。
  应用:
  1.用户界面设计。
  2.用于中心机房向储蓄柜面发通知的程序中(结合实达终端屏幕保存代码ESC[/n&#59;mr__保存从n行到m行的内容,恢复代码ESC[/11)
  七、应用举例
  1.彩色立体菜单(shell语言):
  setcolor-b white
  clear
  while true
  do
  echo″
  ^[[8&#59;20H^[[34&#59;43m┍—————————┒^[[47m
  ^[[9&#59;20H^[[34&#59;43m | 1 日 间 业 务 | ^[[40m ^[[47m
  ^[[10&#59;20H^[[34&#59;43m| 2 环 境 维 护 | ^[[40m ^[[47m
  ^[[11&#59;20H^[[34&#59;43m| 请 选 择 [ ]| ^[[40m^[[47m
  ^[[12&#59;20H^[[34&#59;43m┕      ┛^[[40m^[[47m
  ^[[13&#59;22H^[[40m     ^[[47m
  echo″ ^[[11&#59;40H\c″
  read acc
  done
  2.向储蓄所发通知(C语言):
  #include<stdio.h>;
  main()
  {
   printf(″%c7%c[/2&#59;4r″,'\033',\033')&#59;
   printf(″%c[2&#59;5H%c[2K 紧急通知 ″,' \033','\033')&#59;
  printf(″%c[3&#59;5H%c[2K由于线路问题,今天不办新余市通存通兑业务“,’[033’,’\033’);
   printf(″%c[4&#59;5H%c[2K 中心机房 1998.11.20%c8″,'\033','033','\033')&#59;
   fflush(stdout)&#59;
   sleep(10)&#59;
   printf “%c[/11″,’\033’);
  fflush(stdout)&#59;
  }
  说明:该程序首先保存光标位置,同时保存2至4行内容 ,接着定位光标到2行5列,清除该行原先内容,然后显示“紧急通知”字样,通知显示完后立即恢复光标位置,然后等待10秒钟后恢复屏幕原先内容 。

论坛徽章:
0
2 [报告]
发表于 2003-01-03 19:43 |只看该作者

UNIX系统下部分控制代码介绍及其应用

好东西。

论坛徽章:
0
3 [报告]
发表于 2003-01-03 20:01 |只看该作者

UNIX系统下部分控制代码介绍及其应用

很好

论坛徽章:
0
4 [报告]
发表于 2003-01-04 03:40 |只看该作者

UNIX系统下部分控制代码介绍及其应用

好东东,请多多指点

论坛徽章:
0
5 [报告]
发表于 2003-01-04 10:47 |只看该作者

UNIX系统下部分控制代码介绍及其应用

真是个好东西呀

论坛徽章:
0
6 [报告]
发表于 2003-01-04 11:52 |只看该作者

UNIX系统下部分控制代码介绍及其应用

up

论坛徽章:
0
7 [报告]
发表于 2003-01-04 15:47 |只看该作者

UNIX系统下部分控制代码介绍及其应用

好东西!

论坛徽章:
0
8 [报告]
发表于 2003-01-04 15:52 |只看该作者

UNIX系统下部分控制代码介绍及其应用

好东西

论坛徽章:
0
9 [报告]
发表于 2003-01-04 18:03 |只看该作者

UNIX系统下部分控制代码介绍及其应用

我原来也从脚本中收集了一些控制字符,但没有htldm的全,不错,感谢你.

论坛徽章:
0
10 [报告]
发表于 2003-01-04 18:58 |只看该作者

UNIX系统下部分控制代码介绍及其应用

好东西! 好东西!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP