将一些输入发送到进程中,然后从命令行恢复输入

将一些输入发送到进程中,然后从命令行恢复输入

我有一个交互式终端程序,它接受标准输入(例如telnet)。

我想在与它交互之前向它发送一些输入,如下所示:

echo "Hello" | telnet somewhere 123

但这只会发送Hello并随后终止 telnet。如何保持 telnet 处于活动状态并将输入路由到其中?

答案1

启动后,您无法更改 telnet 的 STDIN 所绑定的内容,但您可以将简单的 echo 替换为执行多个操作的内容 - 并让第二个操作为“将用户输入复制到目标”:

{ echo "hello"; cat; } | telnet somewhere 123

当然,您可以将 cat 替换为将从用户复制并发送到 telnet 的任何内容。

请记住,这仍然与仅在流程中键入内容不同。您已将管道连接到 STDIN,而不是 TTY/PTY,因此 telnet 将无法隐藏您输入的密码。

相关内容