обясните 2 оператора
Добавлено: 2008-09-06 10:22:22
нарыл у вас тут скриптик:
за который автору спс, все вроде понятно кроме вот этих операторов, если не трудно переведите вот это:
и вот это:
Код: Выделить всё
#! /bin/sh
ping="/sbin/ping"
# время
date_time="`date +%H:%M:%S`"
# дата
date="`date +%d-%m-%Y`"
date="`date | awk '{print $1,$2,$3,$4,$5}'`"
# часы минуты
date_hour="`date +%H`"
date_minute="`date +%M`"
# Пингуемые хосты
ISP="***.***.***.***"
# Создание файлов если их нет
if [ ! -f hour.txt ]; then
echo "$date_hour" > hour.txt
echo "$date_minute" > minute.txt
echo "запуск 1-й раз" > interval.txt
exit 0;
fi
# Пингуем провайдера
$ping -q -c 4 ${ISP} >/dev/null 2>&1
# если результат true
if [ $? -eq 0 ]; then
echo "Провайдер Lecos - $ISP доступен."
echo "isp" > hour.txt;
echo "isp" > minute.txt;
exit 0;
else
echo "Ошибка связи. Провайдер Lecos - $ISP не доступен" 2>/dev/null
# Проверка данных txt файла. Если есть запись "true isp"
# Значит перед этим был инет. Сохраняем значения времени
# отсутствия Инета и выходим
result_txt="`cat minute.txt`"
if [ $result_txt = "isp" ]
then
echo "$date_hour" > hour.txt
echo "$date_minute" > minute.txt
exit 0;
fi
# Последнее время проверки(предыдущий раз)
old_hour="`cat hour.txt`"
old_minute="`cat minute.txt`"
# Текущая разница времени
end_hour="`expr $date_hour - $old_hour`"
end_minute="`expr $date_minute - $old_minute`"
# Если разница времени(минут) меньше 0
# 15.45-16.10 rez_m=60-45+10 rez_h=0
if [ $end_minute -lt 0 ]
then
end_hour="0";
end_minute="` 60 - $old_minute + $date_minute`";
fi
# Если разница времени равна 0.Выход
if [ $end_hour -eq 0 -a $end_minute -eq 0 ]
then exit 0;
fi
echo "-------------------------------
Дата: $date
Время: $date_time
Время отсутствия: ${old_hour}:${old_minute} - ${date_hour}:${date_minute}
Всего $end_hour часов $end_minute минут.
-------------------------------" >> interval.txt
# Интервалы отсутствия времени
interval="`cat interval.txt`"
echo "$date_hour" > hour.txt
echo "$date_minute" > minute.txt
echo
echo "Интервалы времени отсутствия Интернета: "
echo "$interval"
exit 1;
fi
Код: Выделить всё
[ ! -f hour.txt ]
Код: Выделить всё
[ $? -eq 0 ]