Dados de tubulação da conexão do soquete TCP ao terminal

0

Eu tenho essa linha simples escrevendo JSON em um servidor TCP

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

Eu teria pensado que alguma conexão seria criada, e os dados seriam canalizados para o terminal / tty, mas isso não funciona, a linha é simplesmente ignorada e o script bash é concluído imediatamente.

Eu também tentei:

echo "{\"some\":\"json-data\"}" > /dev/tcp/localhost/9091 | tail -f

No meu servidor TCP, eu recebo uma conexão, mas o pipe é rapidamente quebrado.

Como posso escrever um comando bash que irá transmitir os dados do servidor TCP para o script bash?

    
por Alexander Mills 11.07.2017 / 21:01

1 resposta

2

Abra um FD persistente. Isso é muito estranho no bash ... as pessoas tendem a acabar alocando manualmente os números dos arquivos.

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

acima assume que o socket está fechado após o envio da resposta.

    
por 11.07.2017 / 21:11

Tags