我写这个剧本,它检查是否AA某些文件已被更改:IF中的变量是否可以在IF外的变量上投影?
#!/bin/bash
path=$1
if [ -z "$path" ]; then
echo "usage: $0 [path (required)]" 1>&2
exit 4
fi
lastmodsecs=`stat --format='%Y' $path`
lastmodsecshum=`date -d @$lastmodsecs`
basedate=$newdate
if [ $lastmodsecs != $basedate ]; then
echo "CRITICAL: $path was last modified on $lastmodsecshum !"
newdate=`stat --format='%Y' $path`
exit 1
else
echo "OK: $path hasn't been modified since $lastmodsecshum \(last supervized change\)"
exit 0
fi
万一IF
声明是真实的我想设置$ newdate变量与UNIX时间在最后一次更改后项目它到了刚好在IF
之上的基于$的变量,这可能吗?
Serge: 脚本现在看起来像这样,结果是,如果文件已被更改,则检查状态保持为CRITICAL:/ etc/passwd最后修改为date
,由于某种原因,$ persist文件没有正确更新:
#!/bin/bash
path=$1
if [ -z "$path" ]; then
echo "usage: $0 [path (required)]" 1>&2
exit 4
fi
lastmodsecs=`stat --format='%Y' $path`
lastmodsecshum=`date -d @$lastmodsecs`
persist="/usr/local/share/applications/file"
if [ -z $persist ]
then newdate=`stat --format='%Y' $path`
else read newdate < $persist
fi
basedate=$newdate
if [ $lastmodsecs != $basedate ]; then
echo "CRITICAL: $path was last modified on $lastmodsecshum !"
echo $lastmodsecs > $persist
exit 1
else
echo "OK: $path hasn't been modified since $lastmodsecshum \(supervized change\)"
exit 0
fi
你是什么意思与'项目',分配? – PeterMmm
是的,这可能是我不知道正确的术语...可以分配。 –
那么在设置新日期之后,您想如何使用基础?您不会在脚本中使用基础。 – PeterMmm