bash重新读取if语句并将正确的信息打印到日志中

时间:2018-10-25 20:18:11

标签: bash if-statement exec

所以我有以下问题。我想创建一个脚本,该脚本在更改文件/ bin / a的元数据之后创建操作(在本示例中,足够在log中输入)。我正在通过解析统计信息输出来检查元数据。 之后,脚本使用sed获取元数据的新值,我希望脚本继续。

问题是,即使它在stat的“ Change”参数中具有正确的新时间戳值(文件/ bin / a的新值,例如,我将chmod更改为754),它仍然对日志产生错误(基本上取“ else”中的内容,而不是“ if”下的内容...我希望我已经足够清楚了:)这是脚本:

#!/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

0 个答案:

没有答案