Redirecionamento para / dev / tcp e / dev / udp pseudo-arquivos é um recurso de tempo de compilação opcional do Bash que muitos fornecedores de SO estão optando por deixar desligado. Parece que a Apple se juntou ao clube. Você tem algumas opções:
-
Use o recurso de substituição de processo do Bash da seguinte forma:
exec 3> >(nc localhost 9999)
Se você estiver fazendo isso interativamente, provavelmente desejará fazer isso depois que não quiser mais redirecionar para um soquete TCP:
exec 3> /dev/null
Isso deve fazer com que o processo
nc
gerado saia. -
Compile seu próprio bash com o suporte a / dev / tcp e / dev / udp do pseudo-arquivo ativado e use-o.
-
Modifique seu script para enviar diretamente para o comando
nc
. Isso pode ser um problema se o script redireciona a saída para o filehandle 3 várias vezes e o processo de escuta não lida adequadamente com várias tentativas de conexão. No entanto, também é mais portátil se você precisar usar seu script em um sistema que não forneça o shell Bash.