Good morning,
I have been teaching myself shell scripting and seem to be stuck here. I am sure I am just blind and not seeing it so I thought maybe some fresh eyes would help. With the script below I keep getting....
"syntax error at line 248 : `done' unexpected"
I am not seeing why this would be unexpected since there is a do statement. In fact if I comment it out I then get this.....
"syntax error at line 180 : `do' unmatched"
Seems I can not win either way...
Could somebody please show me what I am missing here?
Thank you in advance.
#!/bin/ksh
. /lcl/apps/Tivoli/netcool/etc/env_omni_sit
EIF_HOME=/lcl/apps/Tivoli/eif;export EIF_HOME
ps -ef | grep ora_pmon | grep -v grep | awk '{print $NF}' | awk -F_ '{print $NF}' > $OMNIHOME/bin/pmonfile.dat
set -A pmon_array
dbfile_name='pmonfile.dat'
i=0
host=`hostname`
while read dbname
do
pmon_array=${dbname}
i=`expr ${i} + 1`
done < $OMNIHOME/bin/${dbfile_name}
i=0
ps -ef | grep nco_p_syslog | grep -v grep | awk '{print $NF}' | awk -F. '{print $1}' > $OMNIHOME/bin/syslogfile.dat
set -A syslog_array
syslogfile_name='syslogfile.dat'
k=0
while read syslogname
do
syslog_array[k]=${syslogname}
k=`expr ${k} + 1`
done < $OMNIHOME/bin/${syslogfile_name}
k=0
if [ ${#pmon_array[*]} > 0 ]; then
while [ ${i} -lt ${#pmon_array[*]} ]
do
x=${pmon_array}
dbmatch='no'
if [ -e $OMNIHOME/probes/solaris2/syslog.$x.props ]; then
if [ ${#syslog_array[*]} = 0 ]; then
$OMNIHOME/probes/nco_p_syslog -manager $x.syslog -propsfile $OMNIHOME/probes/solaris2/syslog.$x.props &
else
k=0
while [ ${k} -lt ${#syslog_array[*]} ]
do
if [ ${pmon_array} == ${syslog_array[k]} ]; then
dbmatch='yes'
fi
k=`expr ${k} + 1`
done
if [ $dbmatch = 'no' ]; then
$OMNIHOME/probes/nco_p_syslog -manager $x.syslog -propsfile $OMNIHOME/probes/solaris2/syslog.$x.props &
fi
fi
i=`expr ${i} + 1`
else
$EIF_HOME/bin/solaris2/postzmsg -f $EIF_HOME/eif.conf -r CRITICAL -m "Unable to start the $x probe because the syslog.$x.props file does not exist on server $host" OnCallGroup="INFR_Apps" ISOC_Instructions="Please contact INFR_APPS on-call as properties file for a syslog database probe on the server needs to be created" SyslogPropsFileCheck SysCleanup
i=`expr ${i} + 1`
fi
done
fi
ps -ef | grep nco_p_syslog | grep -v grep | awk '{print $NF}' | awk -F. '{print $1}' > $OMNIHOME/bin/syslogfile.dat
set -A syslog_array2
syslogfile_name='syslogfile.dat'
k=0
while read syslogname
do
syslog_array2[k]=${syslogname}
k=`expr ${k} + 1`
done < $OMNIHOME/bin/${syslogfile_name}
k=0
i=0
if [ ${#syslog_array2[*]} > 0 ]; then
while [ ${i} -lt ${#syslog_array2[*]} ]
do
x=${syslog_array2}
dbmatch='no'
if [ ${#pmon_array[*]} = 0 ]; then
ps -ef | grep nco_p_syslog | grep $x | awk '{print $2}' | xargs kill
else
k=0
while [ ${k} -lt ${#pmon_array[*]} ]
do
if [ ${syslog_array2} == ${pmon_array[k]} ]; then
dbmatch='yes'
fi
k=`expr ${k} + 1`
done
if [ $dbmatch = 'no' ]; then
sleep 60
ps -ef | grep ora_pmon | grep -v grep | awk '{print $NF}' | awk -F_ '{print $NF}' > $OMNIHOME/bin/pmonfile.dat
set -A pmon_array
dbfile_name='pmonfile.dat'
l=0
host=`hostname`
while read dbname
do
pmon_array[l]=${dbname}
l=`expr ${l} + 1`
done < $OMNIHOME/bin/${dbfile_name}
k=0
while [ ${k} -lt ${#pmon_array[*]} ]
do
if [ ${syslog_array2} == ${pmon_array[k]} ]; then
dbmatch='yes'
fi
k=`expr ${k} + 1`
done
if [ $dbmatch = 'no' ]; then
ps -ef | grep nco_p_syslog | grep $x | awk '{print $2}' | xargs kill
fi
fi
i=`expr ${i} + 1`
done
fi