bash - bash 重新读取它的 if 语句并将正确的信息打印到日志中
问题描述
所以我有以下问题。我想在文件 /bin/a 的元数据更改后创建脚本,该脚本会创建操作(在此示例中,日志中的适当条目就足够了)。我正在通过解析 stat 输出来检查元数据。之后,脚本使用 sed 获取元数据的新值,我希望我的脚本继续。
问题是,即使它在 stat 的“更改”参数中具有正确的新时间戳值(文件 /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
解决方案
推荐阅读
- android - 无法为 Adapterclass 传递空参数
- c# - 使用 C# 在 microsoft botframework 中语音到文本
- python - 压缩两个具有相同文件名的列表中的项目?
- json - XML 和 JSON 格式的 Django REST API
- xamarin.android - 将目标 android 版本从 7.1 更改为 8.1 显示错误(xamarin)
- ios - 如何在 Swift 的数组中获取所有可用的表情符号?
- mongodb - 在 MongoEngine 中使用 __raw__ 访问 ListField/EmbeddedDocumentListField 中的项目
- javascript - 如何使用 JavaScript 检测冷门浏览器(百度)?
- python - 从烧瓶中,如何将 matplotlib 绘图图像发送到 JSON 对象?
- c# - WSDL 生成的类型不采用 COM 属性