2.4产生转义序列
产生转义序列 【程序编程相关:3D Engine 的设计架构 】 【推荐阅读:Programming in Lua翻译】注意,如果正在使用一个仿真器,要使光标不可见,这个操作可能会有问题.这是因为: 【扩展信息:Programming in Lua翻译】 1) 一些仿真器并不捕获使光标不可见的控制字符.必须要求正在使用的软件仿真的制作者修改源脚本以关闭光标. 2) tput civis命令的一些旧版本工作不正常. 关闭光标的控制字符是? 2 5 l(这是字母l),将之打开是?2 5 h. 所有控制字符均以一个转义序列开始.通常转义键后紧跟字符[.然后实际序列打开或关闭某终端属性. 可以使用两种不同的方法产生转义序列.下面的列表依据用户系统列出两种方法.第三种方法对于u n i x与l i n u x支持的变量均有效,因为控制序列嵌在e c h o语句中.本书将使用这种方法. 要发送一转义序列以关闭光标:linux/bsd echo -e "33[?251"
system v echo "33[?251" generic method echo "[?251"0 3 3为转义键取值, 通知e c h o命令接下来是一个八进制值.例如要反馈一个@字符,键入
echo “@”或者e c h o - e“ 1 0 0” 对于系统v ,使用 echo “ 1 0 0” 结果是一样的. 命令c l e a r表示清屏并发送光标到屏幕左上角,此位置一般也称为h o m e.在一个v t终端范围实现此功能所需序列为e s c i j,可以使用e c h o语句发送这一序列.system v echo "33[2j"
linux/bsd echo -e "33[2j"对于嵌入在文本中的任何控制字符,不要试图剪切与粘贴,因为这样会失去其特殊含义.
例如,要插入控制字符,打开光标,方法如下: e c h o < ct r l - v> hit the key then [?25h 即先击< c t r l - v > ,再击退格键,确保这不是一个仿真器.然后加入一小段脚本将之打开与关闭.可以将这段脚本编成一个函数或者在后面几页找一下这段脚本.[root@linux_chenwy root]# cat cursor
#!/bin/sh _opt= if [ $# -ne 1 ];then ... 下一页