Comment puis-je ping à un hôte avec un Perl one-liner avec Net::Ping?

En essayant d'intégrer le Perl suivant une ligne dans un script shell. Ce code fonctionne à l'intérieur d'un script Perl, mais pas comme un one-liner exécuté à partir d'un script shell.

J'ai essayé de remplacer $host avec un vrai nom d'hôte avec pas de chance.

#!/bin/ksh

hosts="host1 host2 host3"

PERL=/usr/bin/perl

# Check to see if hosts are accessible.
for host in $hosts
do
   #echo $host
   $PERL -e 'use Net::Ping; $timeout=5; $p=Net::Ping->new("icmp", $timeout) or die bye ; print "$host is alive \n" if $p->ping($host); $p->close;'
done
Pourquoi êtes-vous à l'aide de perl au lieu de simplement ping?
J'ai intégré cela dans un pays déjà écrit script shell qui je ne se soucient pas de port. Cela sert comme une pratique, toujours très rapide (qui est, il ne se bloque pas) one-liner qui fonctionne sur les plates-formes.

OriginalL'auteur XO. | 2010-10-18