Я пишу bash-скрипт для проверки связи с заданным именем хоста и отображения активности хоста (отображать простое сообщение). Должно быть легко, но вместо этого болит голова. Вот что у меня так далеко:
    echo & echo "DOI (Domain):" &&read input 
    ip=$(ping -c 1 $input | gawk -F'[()]' '/PING/{print $2}') 
    if [ $? -eq 0 ]; then  
        echo "$ip is up";  
    else   
        echo "host is down";  
    fi  
    sleep 60  
Вот вывод:
Успешный пинг (и ответ), он отвечает:  
    74.125.226.119 is up
Тем не менее, в случае невозможности получить ответ, он по-прежнему отвечает:
    ping: unknown host google.ccccaa 
    is up
а не эхо "хозяин не работает"
Очевидно, я что-то упустил. Я ненавижу задавать подобные вопросы, и я уверен, что ответ уже где-то здесь скрывается, но опять же я зашел в тупик и не могу найти то, что ищу. Я даже не совсем уверен, что я ищу.
РЕДАКТИРОВАТЬ: Решено! Спасибо за полезные советы!
Вот финал:
    echo & echo "DOI (Domain):" &&read input    
    output=$(ping -c 1 "$input" 2>/dev/null)  
    if [ $? -eq 0 ]; then  
       ip=$(printf '%s' "$output" | gawk -F'[()]' '/PING/{print $2}'  2>/dev/null )  
       echo "$input ($ip) is up";  
    else  
       echo "Host not found";  
    fi  
    sleep 60  
