嵌套if if或while循环中的语句

时间:2017-10-18 19:35:43

标签: bash

我是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

0 个答案:

没有答案