交互式命令行应用程序(例如less
,vim
Python 解释器)似乎在不同的上下文中运行。
退出时,您将返回到 shell,就像启动它们时一样,向上滚动终端显示时不会出现应用程序输出的痕迹。
我的问题是:这是如何实现的?我该如何编写这样的应用程序?一个“接管”外壳,然后“归还”外壳的外壳?
这是我在这里缺少的一个基本概念。我知道标准输入, 标准输出,和标准误溪流。如何从程序写入它们,以及如何使用 shell 将它们重定向到文件。但我不明白文本模式界面如何能够暂时“捕获”和“重绘”终端,然后消失得不留痕迹。