我是bash的新手,所以如果我的代码看起来很讨厌或不正确,请放轻松。
我正在尝试制作一个可以ping主机名的脚本,如果该主机名没有响应,它将获取主机名的IP并尝试。可能看起来毫无意义,但我有我的理由。
我遇到的问题是我的脚本无法识别脚本末尾的“已完成”。
#!/bin/bash
#while read hostname; do
for hostname in $(cat host.txt); do
ping -c1 $hostname 1>/dev/null 2>/dev/null
SUCCESS=$?
if [ $SUCCESS -eq 0 ]
then
echo "$hostname has replied"
else#[ $SUCCESS -ne 0 ]
echo "Hostname didn't reply, trying IP"
ip=`cat /etc/hosts | grep $hostname | awk '{print $1}' `
ping -c1 $ip 1>/dev/null 2>/dev/null
SUCCESS=$?
if [ $SUCCESS -eq 0 ]
then
echo "$ip has replied"
echo "------------------------------"
else
echo "$ip didn't reply"
echo "------------------------------"
fi
done