分类:
2006-06-22 17:52:21
产生转义序列
注意,如果正在使用一个仿真器,要使光标不可见,这个操作可能会有问题。这是因为:
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 "\033[?251"
System V echo "\033[?251"
Generic method echo "
\ 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"\033[2J"
Linux/BSD echo -e "\033[2J"
对于嵌入在文本中的任何控制字符,不要试图剪切和粘贴,因为这样会失去其特殊含义。