I am new to Shell Scripting and I need help to write the following script in a different format...
This is the current script:
Code:
#!/usr/bin/ksh
environment=rms
export environment
. $AW_HOME/RETEK/exec/RETEK_ENVAR
ls -ltr $MMPOS/RTLOG* | tr -s " " | cut -d " " -f9 >$MMHOME/oracle/proc/bin/rtlogfiles.txt
touch $MMHOME/oracle/proc/bin/prom.1
while read LINE
do
saimptlogi_running=1
. $MMHOME/awbatch/refreshsql.sh saimptlogi
echo $LINE
mv $LINE $LINE.1
Date=`date "+%m%d%y%n"`
awrun -m saimptlogi -args 1 Y $LINE.1 $MMHOME/oracle/proc/bin/bad.1 $MMHOME/oracle/proc/bin/item.1 $MMHOME/oracle/proc/bin/waste.1 $MMHOME/oracle/proc/bin/ref_item.1 $MMHOME/oracle/proc/bin/prim_variant.1 $MMHOME/oracle/proc/bin/varupc.1 $MMHOME/oracle/proc/bin/storeday.1 $MMHOME/oracle/proc/bin/prom.1 $MMHOME/oracle/proc/bin/codes.1 $MMHOME/oracle/proc/bin/error.1 $MMHOME/oracle/proc/bin/ccval.1 $MMHOME/oracle/proc/bin/storepos.1 $MMHOME/oracle/proc/bin/tendertype.1 $MMHOME/oracle/proc/bin/merchcodes.1 $MMHOME/oracle/proc/bin/partner.1 $MMHOME/oracle/proc/bin/supplier.1 $MMHOME/oracle/proc/bin/employee.1 $MMHOME/oracle/proc/bin/banner.1 $MMHOME/oracle/proc/bin/ref_mmrp.1 $MMHOME/oracle/proc/bin/igtax.1 " " Y
sleep 140
done <$MMHOME/oracle/proc/bin/rtlogfiles.txt
sleep 90
while true
do
saimptlogi_running=`awexe jq |grep saimptlogi | grep -v REJ | wc -l`
if [ $saimptlogi_running = 0 ]; then
mv ls -ltr $MMPOS/RTLOG*.1 $MMHOME/arch
break
fi
done;
Actually I want a script which will not wait for the sleep(i;e I don't want sleep option) rather it should find for the PID in the log directory
(Ex:- Jan_12.log
Mon Jan 12 01:43:48 Program: saimptlogi: PID=12409: Started by rms
Mon Jan 12 01:45:50 Program: saimptlogi: PID=12409: Thread 1 - Terminated Successfully
)and it will ensure that if the same PID will appear again then it should assume that the current program is finished, then it should execute the next program.
Can anyone please help me with it ...