*参数传递*

(一)假如我们有个脚本monitor中的函数search调用searchfile.sh脚本中的searchlog函数,例如:

截取searchfile.sh的一部分:

searchlog()
{
        local searchas=$1
        asinfo=(`getAsInfo $1`)
        local searchfile=$2
        local keyword="$3"
        local linenum=1000
        if [ ! -z $4 ]
        then
          linenum=$4
        fi

searchcount=`sh "$sordir"remote-exec.sh "ssh ${asinfo[1]}@${asinfo[0]} tail -$linenum $searchfile"  ${asinfo[2]} | grep "$keyword" |wc -l | tail -1| tr -d '\n\r'`
        if [ $searchcount -gt 0 ]
        then
          echo $searchcount
        else
          echo 0
        fi
}

searchlog "$1" "$2" "$3" "$4"

而monitor中的函数调用searchfile.sh的部分:

search()
{
ip=$1
file=$2
keyword=$3
logfile=$4
local oc4j=`basename $2`
searchcount=`sh "$sordir"/searchfile.sh "$ip" "$file" "$keyword" $5`
echo "$ip" `date`" "$keyword"===="$searchcount >> $logfile

if [ $searchcount -gt 0 ]
then
 :
#
 echo "$ip" `date`" "$keyword"===="$searchcount >> $logfile".error"
 echo "1" > $logfile".alert"
 echo "0" > /opt/oracle/sor/monitor/log/cps.log.alert
 #sh "$sordir"/sender/mobileSender.sh `date "+%m%d_%H:%M"`"$ip $keyword =$searchcount"  $telnum
 sh "$sordir"/sender/mobileSender.sh "$ip $oc4j $keyword =$searchcount" $telnum
fi

}

我们可以看出$5是个空值,那么在searchfile.sh中的searchlog部分就会出现判断语句,如果

 if [ ! -z $4 ]
        then
          linenum=$4
        fi

那么就searchlog "$1" "$2" "$3" "$4"中的$4的值就用默认的local linenum=1000~

假如$5存在的话,我们就会将$4的值传给$linenum

(二)下面只是截取的部分,循环的参数是从一个配置文件中读入:

getip()
        {
        cd ${script_path}
        cat clear_log_example.conf | awk '{ print $1}' | sort | uniq > ip.conf

        }

getip

while read ip
do
        clear_control ${ip}
done<ip.conf

这里主要是先通过一个函数获取所有主机的ip配置文件,然后再通过一个循环,one by one的读入ip~

(三)下面的是一个判断语句,在脚本执行的时候一般只有一个参数,脚本自动进入某个目录选择文件;

如果要是两个参数的话,第二个参数必须是那个目录下面的一个文件~

if [ $# -eq 2 ]
then
        FileName=$2
else
        if [ $# -ne 1 ]
        then
                echo "usage:sh $0 FilePath"
                exit
        fi
fi


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值