当我将任何命令通过管道传输到 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
使用sleep
s 保持打开连接;尝试不同的延迟时间。
【讨论】:
【参考方案3】:echo
要发送的命令,然后使用cat
保持连接打开。
echo "commands to send"; cat -; | telnet localhost 8080
连接打开时,您可以像往常一样键入命令,但不能将转义字符发送到 telnet。
要关闭连接,请按 Ctrl+C。
【讨论】:
以上是关于当我将任何命令通过管道传输到 telnet 会话时会发生啥,为啥会话会关闭的主要内容,如果未能解决你的问题,请参考以下文章