未知的ANSI转义序列

时间:2019-10-12 17:21:44

标签: unix terminal ascii ansi-escape

我正在尝试创建HTML终端模拟器。对于大多数格式化代码,我都很好,pages like this是一个很大的帮助。但是,包含提示的行很奇怪(字符串,然后是下面的ASCII码):

\e]0;pi@igor: ~{??}\e[01;32mpi@igor:[01;34m~ $  
####
27 93 48 59 112 105 64 105 103 111 114 58 32 126 7 27 91 48 49 59 51 50 109 112 105 64 105 103 111 114 27 91 48 48 109 58 27 91

首先,在该行的开头有这个\ e](Esc +右括号!)序列,我在文档中没有看到。使用开括号会更好,但即使在参考文献中也找不到。

接下来的事情是我在字符串中用{??}替换的字符代码7。提示之后,只有一个字节7。

此处的实际提示是

pi@igor:~ $ 

具有格式设置(并且igor是Raspberry Pi),因此该字符串在{??}部分(即char 7)之后就很好了(即使被我截断了),但是在那之前是什么?

编辑:是的,char 7将是ASCII码的铃声。如果是这样,为什么它会有完整的提示?

1 个答案:

答案 0 :(得分:1)

它将终端标题设置为pi@igor: ~,这是由第一部分\e]0;pi@igor: ~\a完成的。

dave_thompson_085的评论报告这是一个xterm序列:

  

这是xterm定义的序列,不是ANSI或DEC。请参阅https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Operating-System-Commands(以及OSC解释为ESC的页面顶部或\ x9D)。