Я пишу 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