netcat e tee redirecionamento via script bash

2

pergunta rápida que tem me assombrado durante todo o dia .. Eu tenho um script bash que inclui esta linha:

nc -l 8044 | tee nc-output &

A saída do netcat nunca está sendo gravada em nc-output. Se eu executar essa linha fora do script bash, ele funciona.

nc -l 8044 > afile &

Também não funciona, mas funciona fora de um script bash.

Eu preciso do E comercial para que eu possa executar o processo separadamente e continuar executando meu script em lote. Qualquer sugestão seria ótima!

Obrigado!

    
por Gregorio Di Stefano 19.06.2012 / 18:25

1 resposta

2

O problema é que, assim que nc aceitar uma conexão, ela tentará ler a partir de stdin. Quando você executa isso como um script bash, ele sempre lê EOF imediatamente e fecha a conexão, o que não acontece quando você o executa fora de um script.

Use -d para evitar que o nc seja lido no stdin.

nc -d -l 8044 > afile &
    
por 19.06.2012 / 19:16