Bash

從 TCP 套接字連接到終端的管道數據

  • July 11, 2017

我有這個簡單的行將 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 腳本?

打開一個持久的 FD。這在 bash 中非常尷尬……人們最終傾向於手動分配文件編號。

exec 3<>/dev/tcp/localhost/9091
echo "{\"some\":\"json-data\"}" >&3
cat <&3

以上假設在發送回復後套接字已關閉。

引用自:https://unix.stackexchange.com/questions/377790