Não com /dev/tcp/x/y
diretamente, mas você pode usar pipes para se comunicar com processos iniciados em segundo plano para conectar os soquetes TCP e transferir dados.
Algo como
coproc hostA {
exec {fd}<> /dev/tcp/127.0.0.1/80
cat <&$fd & cat >&$fd
}
# same for hostB...
echo -e 'HEAD / HTTP/1.0\r\n\r' >&${hostA[1]}
cat <&${hostA[0]}
Como você acaba executando dois comandos cat
de qualquer forma, você pode ficar sem /dev/tcp
(que nem sempre está ativado) e usar por exemplo socat:
coproc hostA { socat - tcp:localhost:80; }
Ou, você pode remover a dependência do bash usando pipes nomeados:
mkfifo hostA.in hostA.out
socat - tcp:localhost:80 < hostA.in > hostA.out &