以编程方式模拟和捕获shell作为终端



我想使用node.js捕获shell的输出,以便我可以将其发送到另一个进程,并且还可以将输入发送到shell,就好像我是使用终端的用户一样(这是用于自动化工具的)。我已经设法完成了后者(向shell发送命令和输入),但是我仍然缺少终端的一些输出。

我在这里贴了一个关于这个问题的具体问题,但我想知道是否有更好的方法来实现高水平的目标。也许node.js脚本不是正确的方法。是否有更好的工具或现有的api来做我想做的事情?

一般的解决方案是将子进程连接到一个伪终端(pty)而不是普通的管道。对于子进程来说,这看起来像一个普通的终端,但实际上是一个模拟器,它允许父进程通过管道与其交互。

在shell中,这可以通过expectscript这样的程序来完成。大多数高级语言都有一种在一个程序中运行子进程的方法,可能使用外部库。看起来child_pty包是在node.js中设计的。

相关内容

  • 没有找到相关文章

最新更新