Bash fournit des pseudo-appareils que vous connaissez probablement comme /dev/null. Cependant, il existe d'autres périphériques tels que /dev/tcpet /dev/udppour tester les connexions réseau, que vous pouvez également utiliser dans les scripts Bash.
extrait de la page de manuel de Bash
  Bash gère plusieurs noms de fichiers spécialement lorsqu'ils sont utilisés dans des redirections, comme décrit dans le tableau suivant:
          /dev/fd/fd
                 If fd is a valid integer, file descriptor fd is duplicated.
          /dev/stdin
                 File descriptor 0 is duplicated.
          /dev/stdout
                 File descriptor 1 is duplicated.
          /dev/stderr
                 File descriptor 2 is duplicated.
          /dev/tcp/host/port
                If  host  is a valid hostname or Internet address, and port 
                is an integer port number or service name, bash attempts to 
                open a TCP connection to the corresponding socket.
          /dev/udp/host/port
                If host is a valid hostname or Internet address, and port 
                is an integer port number or service name, bash attempts to 
                open a  UDP  connection to the corresponding socket.
Exemple
Ici, je teste la connexion à un hôte de mon domaine nommé skinner et je vois si je peux me connecter à son port 22. 
REMARQUE: le port 22 est pour SSH, pour le port 23 d'utilisation telnet.
$ echo > /dev/tcp/skinner/22 && echo "it's up" || echo "it's down"
it's up
Super alors essayons un non-port:
$ echo > /dev/tcp/skinner/223 && echo "it's up" || echo "it's down"
bash: connect: Connection refused
bash: /dev/tcp/skinner/223: Connection refused
it's down
Eh bien, cela fonctionne, mais c'est une sortie terriblement moche. Ne pas s'inquiéter. Vous pouvez exécuter le echo > /dev/tcp/...sous-shell et rediriger toutes les sorties vers /dev/nullpour le nettoyer un peu. Voici le modèle que vous pouvez utiliser dans vos scripts shell:
$ (echo > /dev/tcp/skinner/22) > /dev/null 2>&1 \
    && echo "it's up" || echo "it's down"
it's up
$ (echo > /dev/tcp/skinner/223) > /dev/null 2>&1 \
    && echo "it's up" || echo "it's down"
it's down