Seu comando dialog
, cuja saída é redirecionada para o arquivo logservidor
, está sendo executado no terminal remoto. Mas a linha que deveria ler sua saída:
case 'cat logservidor' in
... está sendo executado localmente, enquanto se constrói o documento here. Isso porque os documentos aqui executam várias expansões, incluindo a substituição de comandos, no momento em que são definidas.
Você pode atrasar essa expansão (para que isso só aconteça quando o script for executado), citando EOF
:
nc $ip $porta_cliente <<-"EOF"
Mas isso também atrasaria a expansão de variáveis no script, como $ip
. Se você quiser que essas variáveis sejam expandidas imediatamente, mas o comando cat
executado posteriormente, você poderá escapar dos backticks:
case \'cat logservidor\' in
Você também pode depurar o problema observando o comando final antes de tentar enviá-lo e executá-lo. Substitua a primeira linha por
cat > tmp-doc <<-EOF
Em seguida, procure em tmp-doc
para ver o que seria enviado em nc
.