Oracle11g 具有用于脚本输出的条件子句的Shell脚本

Oracle11g 具有用于脚本输出的条件子句的Shell脚本,oracle11g,Oracle11g,我是这个网站的新手,也不熟悉shell脚本,这是我的第一个表单。请帮助我使用以下shell脚本 我正在执行一个shell脚本,每15分钟运行一次(在cronjob中计划),它在一个输出文件中提供一个输出,该文件通过电子邮件发送 CONCCOUNT=`cat $OUT_DIR/EBS_Locked_Accounts.out|grep INVALID |wc -l` echo $CONCCOUNT if [ $CONCCOUNT != 0 ] then outputFile="$OUT_DIR/E

我是这个网站的新手,也不熟悉shell脚本,这是我的第一个表单。请帮助我使用以下shell脚本

我正在执行一个shell脚本,每15分钟运行一次(在cronjob中计划),它在一个输出文件中提供一个输出,该文件通过电子邮件发送

CONCCOUNT=`cat $OUT_DIR/EBS_Locked_Accounts.out|grep INVALID |wc -l`
echo $CONCCOUNT

if [ $CONCCOUNT != 0 ]
then
outputFile="$OUT_DIR/EBS_Locked_Accounts.out"
(
echo "From: oraiga@icp.com"
echo "To: $MAILLIST"
echo "MIME-Version: 1.0"
echo "Subject: Locked Accounts in EBS"
echo "Content-Type: text/html"
cat $outputFile
) | sendmail -t
我的要求是:


我不希望脚本每15分钟发送一次输出(无法更改cronjob计划),相反,它应该每一小时发送一次实际输出,除非计数发生变化。

如果不能更改cronjob计划,则可以创建一个计数为4的文件,然后发送并重置计数,因为15分钟*4=1小时。像这样:

echo“1”>croncount.txt

#!/usr/bin/bash
CRONCNT=$(cat "croncount.txt")
if [ $CRONCNT == 4 ]; then
    if [ $CONCCOUNT != 0 ]; then 
    outputFile="$OUT_DIR/EBS_Locked_Accounts.out" ( echo "From: oraiga@icp.com" echo "To: $MAILLIST" echo "MIME-Version: 1.0" echo "Subject: Locked Accounts in EBS" echo "Content-Type: text/html" cat $outputFile ) | sendmail -t
    fi    
    echo "1" > croncount.txt
else
    CRONCNT=$((CRONCNT+1))
    echo "$CRONCNT" > croncount.txt
fi

脚本现在在第四次执行时将输出发送到邮件,但我需要再添加一个条件,即如果这些执行之间的输出有任何差异,则脚本应将更改发送到邮件。示例:CONCCOUNT文件在第一次执行(15分钟)时有一些值,如5,在第二次执行时值没有变化,因此不需要邮件,但现在在第三次执行(45分钟)时,值变为6,然后它应该在第三次执行时发送邮件通知。希望我能清楚地解释我的要求。提前感谢您的帮助。不确定您到底在寻找什么,但是如果您想要一个复合语句,您可以执行以下操作:
if[$CRONCNT==4]&&&[$CONCCOUNT!=0];然后
。。。如果我的答案对汉克很有帮助,别忘了投票支持我的答案。。。不幸的是,它仍然不符合我的目的。