echo $'\ec' 为何会起作用?它要做什么来清除终端?

echo $'\ec' 为何会起作用?它要做什么来清除终端?

在 OS XI 的终端提示符下输入echo $'\ec'ti 会清除控制台。不过我不知道为什么会这样。它在做什么?

我猜这也适用于其他版本的 Linux。有人能解释一下吗?

答案1

\e是 ESC 字符 (0x1B)。这被称为“转义序列”。

这里有完整的清单在互联网上为 VT100 或 ANSI 终端,您可以查看它来了解它们的工作原理。

仅供参考,您可以用 做同样的事情printf "\x1bc\n",或者通过省略最后的 \n 来完全清除屏幕。

答案2

终端通常本身没有 API,因此终端驱动程序会监听发送到终端的特定字符序列,并根据收到的序列采取行动。该^[c序列会导致终端被清除,并且只是众多此类序列之一。

答案3

特定序列发送为

ESC c

(转义字符后跟c)。这恰好是 VT100 的硬件重置功能。在真实终端上,这会断开您的连接。终端仿真器(您更可能正在使用)只会将终端重置为其默认状态,顺便清除显示。由于它们通常模拟(模仿)VT100,因此开始阅读的合适地方是 VT100 的文档:

关于“vtansi”链接,该链接已在常见问题解答中提到好几年了:如何使用 VT100 获取颜色?

相关内容