我正在开发一个包装库(在 C# 中,但对这里的问题并不重要)来打开 SSH 连接,然后允许向服务器发送命令并接收响应。然而,主要的是,我希望命令调用缓冲响应流,然后在 shell 返回到控制台提示符后将其作为一个字符串全部返回给用户。这样,我可以只触发一个命令,而不必在每次服务器在作业期间写回控制台时处理所有响应事件。
所以,我的主要问题是,在 VT100 会话中,是否有任何万无一失的方法来确定服务器已返回输入提示?到目前为止,我发现的唯一一件事是,对于我尝试过的两个 ssh 服务器(cygwin 和 Fedora),它似乎总是输出的最后一个字符序列是 '[esc][0m' [esc],即 ASCII代码 27 我想这是标准的东西,但是当我查看该序列是什么时,我发现了这个:
modeoff SGR0,关闭字符属性
我有点希望有更具体的东西,比如“等待输入”:P
如果这适用于所有/大多数系统,有什么想法吗?或者如果有更好的方法?