LINUX.ORG.RU
решено ФорумAdmin

Вывод результата ping'a


0

1

Привет. Хочу получить в удобоваримой форме результат работы утилиты ping. Допустим, ответ получен - 1, не получен - 0. Как это можно сделать на bash? Спасибо.

Легко!

Попробуй сделать «ping -c3 x.x.x.x ; echo $?» Если ping не получает ответных пакетов, то он завершит работу с кодом возврата 1.

NightGhost
()
Ответ на: комментарий от Stulikov

$? - это exit code. Его возвращают все программы, и обычно он равен 0 в случае удачного завершения работы и какому-дибо другому числу в противоположном случае.

Конструкции «||» и «&&», а также директива «if» в bash в примере ниже проверяют именно его.

AITap ★★★★★
()
Ответ на: комментарий от Stulikov

ИМХО, если нужно ответить нескольким людям сразу, нужно отвечать на своё сообщение, используя ... для привлечения внимания адресатов.

AITap ★★★★★
()
Ответ на: комментарий от Stulikov

Stulikov

а где прочесть про $?

man bash

Special Parameters
       The shell treats several parameters specially.  These parameters may only be referenced; assignment to them is not allowed.
...
       ?      Expands to the exit status of the most recently executed foreground pipeline.

и да, ping -q

-q Quiet output. Nothing is displayed except the summary lines at startup time and when finished.

drBatty ★★
()
Ответ на: комментарий от AITap

AITap

Его возвращают все программы, и обычно он равен 0 в случае удачного завершения работы и какому-дибо другому числу в противоположном случае.

не «обычно», а «всегда».

возвращаются коды с ошибками 1..63

коды 64..127 зарезервированы для пользовательских скриптов

коды 128..255 возвращаются в случае прерывания.

drBatty ★★
()
Ответ на: комментарий от Stulikov

Stulikov

-q не подошло. Не тот результат.

а что вам не понравилось? Обычно пишут так:

if ping -q -c1 host; then
  echo "ответ получен"
else
  echo "ответ НЕ получен"
fi

drBatty ★★
()
Ответ на: комментарий от drBatty

А я писал ping -c3 -q ya.ru и получал не то, что хотел. (не 1 или 0). Не знал, как пишут обычно, буду иметь в виду. Спасибо.

Stulikov
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.