Netcat et tee redirection via un script bash


2

Question rapide qui me hante toute la journée .. J'ai un script bash qui inclut cette ligne:

nc -l 8044 | tee nc-output &

La sortie de netcat n’est jamais écrite dans nc-output. Si je lance cette ligne en dehors du script bash, cela fonctionne.

nc -l 8044 > afile &

Aussi ne fonctionne pas, mais fonctionne en dehors d'un script bash.

J'ai besoin de l'esperluette pour pouvoir exécuter le processus séparément et poursuivre l'exécution de mon script batch. Toute suggestion sera appréciée!

Merci!


Une chose qui me vient à l’esprit: votre script a-t-il un répertoire de travail différent de celui que vous attendez?
Mikey Boldt

Je ne pense pas que ce soit le problème. Le script crée un fichier vide à chaque exécution. Rien n’est écrit.
Gregorio Di Stefano le

Réponses:


2

Le problème est que dès que nc accepte une connexion, il essaiera de lire stdin. Lorsque vous exécutez ceci en tant que script bash, il lit toujours immédiatement EOF et ferme la connexion, ce qui ne se produit pas lorsque vous l'exécutez en dehors d'un script.

Utilisez -dswitch pour empêcher nc de lire stdin.

nc -d -l 8044 > afile &

Je vais essayer de vous répondre! Merci!
Gregorio Di Stefano le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.