Der Versuch, den folgenden Perl-One-Liner in ein Shell-Skript zu integrieren. Dieser Code funktioniert innerhalb eines Perl-Skripts, jedoch nicht als Einzeiler, der von einem Shell-Skript ausgeführt wird.Wie kann ich einen Host mit einem Perl-Einzeiler mit Net :: Ping anpingen?
Ich habe versucht, $host
mit einem echten Hostnamen ohne Glück zu ersetzen.
#!/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
Warum sind Sie Perl verwenden, anstatt nur 'ping'? –
Ich habe dies in ein bereits geschriebenes Shell-Skript integriert, das ich nicht portieren möchte. Dies dient als bequemer, gleich bleibend schneller (das heißt, es hängt nicht) Einliner, der plattformübergreifend arbeitet. –