在 Ubuntu 下在 bash 中运行:
我有一个可以为我生成一些输出的源,但不是马上。让我们假设它是第一个在套接字上侦听的 netcat: netcat -l 12345
。
我想将它通过管道传输到传出的 netcat(通过 TCP 连接),例如netcat -l 12345 | netcat localhost 54321
. 但棘手的一点是,当我运行命令时,我知道在 localhost 54321 上没有监听该传入连接,但我知道当第一个实际字符通过管道到达时会有一个。
所以我的问题是:有没有办法:
- 延迟传出 netcat 的执行,直到第一个字符到达管道,或者
- 延迟传出的 netcat 尝试建立 TCP 连接,直到它收到标准输入上的第一个字符?(在 man 中没有直接的选择,切换到 UDP 是不可接受的)
提前致谢!
编辑:实际上,源比 netcat 更复杂,即它是一个通过各种流修改管道传输的监听 netcat。