假设我在终端中运行这样的命令:
~$ echo 'sleep 2; echo "hello!"' | sh
Run Code Online (Sandbox Code Playgroud)
然后开始输入下一行。两秒钟后,“你好!\n”这个词将被插入到我正在写的任何内容中。我知道有一个解决方法(按上然后下刷新提示),但是在其他没有历史记录的系统上——例如,通过 telnet 使用 MUD——这是不可能的。
有人知道将标准输入与标准输出分开的 ncurses 应用程序或终端模拟器吗?这在 ncurses 中似乎很容易制作,您只需要使用一些聪明的 dup2s,但在我制作之前,我想知道是否有人以前做过。
也欢迎针对主要问题的任何其他解决方案。