我有一个简单的行将 JSON 写入 TCP 服务器
echo "{\"some\":\"json-data\"}" > /dev/tcp/localhost/9091 > cat
我本以为会创建一些连接,并且数据会通过管道传输到终端/tty,但这不起作用,该行只是被跳过,并且 bash 脚本立即完成。
我也尝试过:
echo "{\"some\":\"json-data\"}" > /dev/tcp/localhost/9091 | tail -f
在我的 TCP 服务器上,我获得了连接,但管道很快就断开了。
如何编写 bash 命令将数据从 TCP 服务器流式传输到 bash 脚本?
答案1
打开持久FD。这在 bash 中非常尴尬......人们往往最终手动分配文件编号。
exec 3<>/dev/tcp/localhost/9091
echo "{\"some\":\"json-data\"}" >&3
cat <&3
上面假设发送回复后套接字已关闭。