bash перечитайте это if if и напечатайте правильную информацию в журнал - PullRequest
0 голосов
/ 25 октября 2018

Итак, у меня следующая проблема.Я хочу создать скрипт, который создает действие (в этом примере соответствующей записи в журнале будет достаточно) после изменения метаданных файла / bin / a.Я проверяю метаданные, анализируя вывод статистики.После этого сценарий использует sed для получения нового значения метаданных, и я хочу, чтобы мой сценарий продолжался.

Проблема в том, что даже если он имеет правильное значение новой отметки времени в параметре «Изменить» из stat (новое значение для файла / bin / a, в котором, например, я изменил chmod на 754), он по-прежнему выдает ошибку в журнал (в основном принимает то, что находится в «else» вместо того, что находится в «if» ... Iнадеюсь, я прояснил себя достаточно :) Вот сценарий:

#!/bin/bash

# These lines do nothing more
# then logging STDOUT and STDERR to the log file:

exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>/var/log/rest-nscd.log 2>&1

# Script itself:

while true
do
sleep 5
CHANGE=$(stat /bin/a |grep Change |awk '{print $3}')
if [ "$CHANGE" == "22:03:09.499223862" ]; then
    echo "OK ===  $(date)"
else  sed -i "s/22:03:09.499223862/$(stat /bin/a |grep Change |awk '{print $3}')/g" /bin/reset-test.sh && echo "NOT OK" '!!!!!!'
fi
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...