Ребята, помогите, чувствую себя полной дурой!
В локальной сети нужно из скрипта проверить - живой ли хост. Сеть не нагружена, одного icmp echo-request хватит. Но вот с проверкой как-то у меня неуклюже получается.
сейчас делаю так:
#!/bin/sh
ping -n -q -c 1 -t 1 $host > /dev/null 2>&1
if [ $? -eq 0 ] ; then
# Здесь все, если хост живой
else
# А здесь если не живой
fi
Конечно, это работает. Но мне не нравится конструкция:
ping -n -q -c 1 -t 1 $host > /dev/null 2>&1
if [ $? -eq 0 ] ; then
Хочется что-то типа:
if [ ping ......... ] ; then .....
Не получается. Точнее, что ни делаю - а либо ошибка, либо всегда false (хост не живой).
А хочется совсем красивости:
#!/bin/sh
is_alive() {
return ping -n -q -c 1 -t 1 $1 > /dev/null 2>&1 # :)))
}
if [ is_alive $host ] ; then
...
FreeBSD 6.0-STABLE, если это важно.