Seu comando deve funcionar. É muito semelhante a alguns dos exemplos na% man_de% manpage.
É exatamente assim que netcat deve operar: uma vez que tenha atingido EOF em stdin, ele (unidirecional) fecha a conexão / para / o servidor e aguarda os dados vindos do servidor. Quando o último fecha a conexão (a outra maneira: servidor- > cliente), então netcat pára.
Se o comando netcat não terminar, suponho que há algo estranho acontecendo no nível da rede que mantém o servidor netcat aguardando informações adicionais.
Você pode testar a opção echo para forçar o -q a parar N segundos após o EOF ser encontrado no stdin:
netcat -q1 server echo <<< "test"
( netcat é <<< "test" ism, use sua sintaxe bash se você não usa echo ... | )