LINUX.ORG.RU

if ping 10.10.0.1 then beep fi


0

1

Возникла необходимость написать просто скрипт, должен делать он следующее. Если машина лежит, никаких действий, если же начинает пинговаться пищит спикер. Я только начал изучать shell scripting и все как бы хорошо, но получается это реализовать только если команде ping задать count, если без -c ключа, то получается нужно прерывать программу, что бы услышать сигнал. код прилагаю

#! bin/bash
if ping -c 3 10.10.0.1
   then beep
   else echo 'host offline'
fi
Если можно пояснить с примерами, буду благодарен.


ping -w <seconds> - задание максимального времени ожидания

xapienz
()

Очевидно

if ping -c 3 10.10.0.1
then echo host online
else beep
fi

А ещё можно воспользоваться зарезервированным символом "!", который возвращает 0 в случае ненулевого кода возврата и 1 в случае нулевого:
if ! ping -c 3 10.10.0.1
then beep
fi

А ещё можно воспользоваться конструкцией «||»:
ping -c 3 10.0.0.1 || beep

AITap ★★★★★
()
Ответ на: Очевидно от AITap

Спасибо, как раз то, что надо

riso
() автор топика
Ответ на: man ping от lazyklimm

Полезный ключик -a, особенно когда подымаешь сеть на машине с клавиатурой но без монитора :)

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