Я хотел бы опустить ошибку из этого оператора IF, если эхо ICMP не удается.
Пример кода:
if ping -q -c 1 -W 1 1.2.3.4 >/dev/null; then
echo -e "PING OK"
else
echo -e "PING NOK"
fi
Он отлично работает, если проверка связи прошла успешно или вы запускаете команду вне сценария, но выдает приведенный ниже вывод, если нет ответа.
PING 1.2.3.4 (1.2.3.4): 56 data bytes
--- 1.2.3.4 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
PING NOK
Я видел ответы на этот вопрос, цитирующие 2>/dev/null, но тогда в выводе отображается весь запрос ping, независимо от того, успешен он или нет! Пример с 2>/dev/null, как показано ниже.
PING 1.2.3.4 (1.2.3.4): 56 data bytes
--- 1.2.3.4 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 26.134/26.134/26.134/0.000 ms
PING OK
Это немного n00b вопрос, но я сетевик, а не разработчик :)
Заранее спасибо!!