0

我正在尝试将 node.js eval 通过管道传输到 ssh2 流。我遇到了一些有趣的问题。主要是 ssh2 或 ssh 客户端如何解释数据。让我们来看看。

当你运行节点进程时,你会得到这个很好的提示 节点提示

所以这就是我的代码的样子调用repl

其中 sshStream 是 ssh2 流,现在因为我正在管道传输流,这就是它在另一边的样子:

tty

基本上光标向下移动,而不是停留在原来的位置,如果我输入 s,那么它不会得到修复,终端变得更加混乱,有人知道原因吗?我应该如何解决这个问题?

fixNewLines基本上是一个将 ('\n' 替换为 '\r\n' 的管道,因为显然,这对于 ssh 协议很重要,否则您将无法获得所需的行为)

4

1 回答 1

0

发生这种情况的原因是,如果进程在 PTY 上的行为与直接调用它们时的行为不同,因为没有 PTY,您会看到这种行为,您必须创建自己的 Pseudo-PTY 才能正确接收并像在真实的外壳上一样解释字符。

于 2021-01-24T13:52:35.733 回答