You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux类系统中如何将脚本的标准输入输出连接到监听端口的微服务?

将脚本的标准输入/输出连接到微服务监听端口的解决方案

下面是几种在Linux系统下实现需求的方法,基于你提到的nc(netcat)和mkfifo工具:

方法1:使用netcat的-c选项(最简单)

如果你的netcat版本支持-c参数(大部分主流版本都支持),这是最直接的方式:

# 替换为你的微服务地址、端口,以及脚本路径
nc -c './your-script.sh' localhost 1234

原理:nc作为客户端连接到微服务端口后,会启动指定的脚本,自动将脚本的标准输出转发给微服务,同时将微服务的响应转发给脚本的标准输入,完全匹配脚本的逻辑(向stdout发请求,从stdin读响应)。

方法2:使用命名管道(mkfifo)手动构建双向通道

如果你的nc不支持-c选项,用mkfifo创建双向管道来实现:

  1. 创建两个命名管道:
mkfifo script_input script_output
  1. 启动nc,将管道与网络端口绑定(后台运行):
# 从script_output读取请求发给微服务,把微服务响应写入script_input
nc localhost 1234 < script_output > script_input &
  1. 运行脚本,重定向其输入输出到管道:
./your-script.sh < script_input > script_output

原理:script_output接收脚本的请求输出,nc读取后发送给微服务;script_input接收微服务的响应,脚本通过read命令从这里读取内容。

方法3:使用bash进程替换(备选方案)

利用bash的进程替换特性,无需创建管道文件:

./your-script.sh > >(nc localhost 1234) < <(nc localhost 1234)

注意:这种方式会启动两个独立的nc实例,可能存在时序同步问题,可靠性不如前两种方法,仅作为备选。

内容的提问来源于stack exchange,提问作者fearless_fool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 05:51:31