gpt4 book ai didi

ssh - 在VT100 SSH session 流中检测控制台提示

转载 作者:行者123 更新时间:2023-12-02 14:26:00 25 4
gpt4 key购买 nike

我正在使用包装器库(在C#中,但对于此处的问题并不重要)来打开SSH连接,然后允许将命令发送到服务器并接收响应。但是,最主要的是,我想让命令调用缓冲响应流,然后在 shell 返回到控制台提示符后将其全部作为一个字符串返回给用户。这样,我可以触发命令,而不必每次工作期间服务器每次写回控制台时都处理所有响应事件。

因此,我的主要问题是,在VT100 session 中,是否有任何简单的方法来确定服务器已返回到输入提示符?到目前为止,我发现的唯一一件事是,在我尝试使用的两个ssh服务器(cygwin和Fedora)中,它似乎总是输出的最后一个字符序列是'[esc] [0m“[esc],即ASCII代码27我想认为这是标准的,但是当我查看该序列的内容时,会发现:

modesoff SGR0, Turn off character attributes



我有点希望获得更具体的信息,例如“等待输入”:P

有什么想法对所有/大多数系统都适用吗?还是有更好的方法?

最佳答案

字符属性(如粗体,闪烁,暗淡,下划线,突出显示等)均已分配了数字代码,可以按转义序列链接在一​​起,以更改监视器上的文本显示。
ESC [ 0 m序列关闭所有设置,使文本恢复为“正常”,即正常亮度,没有其他视觉属性。

VT100仅显示其串行端口上出现的字符。因此,提示的内容很大程度上取决于您将终端连接到的内容,并且很可能解释了为什么您还没有得到答案。

具有提示的系统通常具有用户可自定义的提示,很可能您可以烘焙隐藏的字符序列(如果不是控制字符),然后可以在 session 中检测到这些字符。

尽管不那么可靠,但另一种方法是等待主机不 Activity 的持续时间,这通常意味着主机正在等待输入(但并非总是如此)。

关于ssh - 在VT100 SSH session 流中检测控制台提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3203766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com