2013-11-12 3 views
2

Я создаю скрипт bash для настройки некоторых устройств, которые мы используем, но im пытается сделать запись в нем, другими словами .. когда скрипт начинает проверять дату, времени, пользователя и других значений, а затем> это значения для csv на удаленном сервере.Ping on bash script, ping if down then exit script

Мне нужен пинг, чтобы проверить, доступен ли сервер, а если нет, то закройте программу.

поэтому я попробовал.

ping -c 1 X.X.X.X>/dev/null || Выход;

, и она работала, но мне нужно повторить, почему он остановился, так что я пробовал:

пинг -c 1 х.х.х.х>/DEV/нуль || echo «Удаленный сервер недоступен»; Выход;

Буэна, когда я делаю это программа выходит даже если пинг прошел хорошо ..

В менее словах, им пытается после «||» чтобы иметь эхо, а затем выйти из сценария, и я не уверен, как это сделать. Все остальное работает как шарм, и если я удалю эхо, выход; опция работает отлично ..

Заранее за вашу помощь.

Noobie.

ответ

3

Вы можете сказать:

ping -c 1 x.x.x.x >/dev/null || { echo " The remote server is unavailable" ; exit; } 

{ ... } обозначает command grouping и команды внутри него будут выполнены в последовательности.

; является разделителем команд. Так что, когда вы говорите:

ping -c 1 x.x.x.x >/dev/null || echo " The remote server is unavailable" ; exit; 

exit вызывается независимо от результата предыдущей команды.

+0

Я только что узнал что-то .. им действительно нуб на программирование, но им обучения и с этой помощи я думаю, что я буду делать это быстро .. Спасибо devnull за вашу помощь, действительно ценят. – user2984368

1

Почему вы не проверяете $?. Если это Поросенок был успешным.

С наилучшими пожеланиями

+0

Спасибо, но команда, группирующая его более похожий, я искал. благодаря! :) – user2984368

Смежные вопросы