当我将任何命令通过管道传输到 telnet 会话时会发生啥,为啥会话会关闭

Posted

技术标签:

【中文标题】当我将任何命令通过管道传输到 telnet 会话时会发生啥,为啥会话会关闭【英文标题】:What happens when I pipe any command to a telnet session , why does the session closes当我将任何命令通过管道传输到 telnet 会话时会发生什么,为什么会话会关闭 【发布时间】:2012-11-21 18:16:46 【问题描述】:

当我将任何命令传送到 telnet 会话时会发生什么,为什么会话会关闭。我怎样才能给出一个可以是进程而不是关闭连接的命令。

我在努力

回显“xvz”|远程登录 0 abc 尝试 0.0.0.0... 连接到 0。 转义字符是'^]'。

终止会话而不是进程 xyz ,我还尝试过什么其他方式

telnet 0 xyz 尝试 0.0.0.0... 连接到 0。 转义字符是'^]'。 到 0 的连接被外部主机关闭。

【问题讨论】:

【参考方案1】:

telnet 不处理标准输入和标准输出。

您应该检查其他程序,例如“期望”。

【讨论】:

是的,我知道 expect 命令,但不幸的是,我的服务器上没有安装 expect,我想探索其他选项 嗨,谁能帮我解决这个问题。我可以使用 &> 选项捕获命令产生的错误,但无法获得输出,任何帮助都会有用跨度> 【参考方案2】:

试试eval:

eval " echo; 
        sleep 5;
        echo 'xvz'; 
        sleep 10; " | telnet your_host

使用sleeps 保持打开连接;尝试不同的延迟时间。

【讨论】:

【参考方案3】:

echo 要发送的命令,然后使用cat 保持连接打开。

 echo "commands to send"; cat -;  | telnet localhost 8080

连接打开时,您可以像往常一样键入命令,但不能将转义字符发送到 telnet。

要关闭连接,请按 Ctrl+C。

【讨论】:

以上是关于当我将任何命令通过管道传输到 telnet 会话时会发生啥,为啥会话会关闭的主要内容,如果未能解决你的问题,请参考以下文章

RUBY 脚本:连接到 Telnet 会话时等待任何输出

在 Windows 命令行中使用管道

Node-sass 不在 npm 脚本中使用管道

Telnet使用

为啥我的 Python3 脚本不愿将其输出通过管道传输到 head 或 tail(sys 模块)?

将 ffmpeg 输出通过管道传输到命名管道