Eu não acho que seja um problema de script, mas sua sintaxe no comando nc.
A sintaxe donc é: nc -l -p port [-options] [nome do host] [porta] Veja man nc para mais informações.
Ao usar o comando nc, o nome do host é seguido por portas separadas por espaços em branco. Se você chamar seu script com o parâmetro localhost: 8080, o shell não irá traduzir isso, então a porta será considerada como parte do nome do host.