#!/bin/bash
WATCHDIR="/path/to/my/dir"
OKTIME="7200"
RESULTFILE="/path/to/some/file.tmp"
DONOTHING="$(printf 'good' > $RESULTFILE)"
SENDMAIL="$(printf 'bad' > $RESULTFILE)"
ELAPSEDTIME="$(expr $(date +%s) - $(stat -c %Y $WATCHDIR))"
if [ "$ELAPSEDTIME" -ge "$OKTIME" ]; then
$SENDMAIL
else
$DONOTHING
fi
Я слишком долго смотрел на это, я сделал несколько ревизий, вывел переменную в отдельные файлы, чтобы проверить, что они работают, и много исследований условных в Баше сегодня. По какой-то причине сценарий всегда выполняет SENDMAIL
, даже когда я вручную проверил, что ELAPSEDTIME
меньше, чем OKTIME
.если утверждение всегда верно независимо от условного оператора
Спасибо, это будет мой первый скрипт для использования функций. Я читаю случайные вопросы здесь, проверяя страницы с людьми и выполняя поисковые запросы Google - спасибо за ответ, я, очевидно, должен продолжать учиться. – snowexcuse