Nesses casos eu prefiro realmente testar alguma resposta do serviço, afinal
porta aberta não quer dizer servidor operante.
Exemplo para bash com suporte a tcp:
$ exec 3<>/dev/tcp/smtp.gmail.com/25;R=;read R<&3;exec 3<&-;[ ${R:0:3} = 220 ]
$ echo $?
0
$
------------------------------------------
>From: "buzi_na"
>Alguém tem algum script para chegar porta 25 de outro servidor.
------------------------------------
---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/shell-script/
<*> Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html