Hi Friends,
I have to do write a shell file based on one flag.If that flag value is 'N' then process look in $DATA are and the normal process continue.If vaule is 'P' then it check for the files in different location $CONV and move those file in $DATA area and rest of the process continue.But if the vaule is 'J' then i have to look in both place i.e $DATA and $CONV area and then move the file from $CONV area to the $DATA area.
Now the problem is how to scan through bot are in one go(i.e) the 3rd condition.
Here is the code:-
----------------------------
if [ $CONV_FLAG= "'N'"]
then
PLACE_TO_CHECK=$DATA
elif [ $CONV_FLAG= "'P'"]
then
PLACE_TO_CHECK=$CONV
fi
while [ ! -f $PLACE_TO_CHECK/$AMPS_COMPLETE01 -o ! -f $PLACE_TO_CHECK/$AMPS_COMPLETE02 -o \
! -f $PLACE_TO_CHECK/$AMPS_COMPLETE03 -o ! -f $PLACE_TO_CHECK/$AMPS_COMPLETE04 -o \
! -f $PLACE_TO_CHECK/$AMPS_COMPLETE05 -o ! -f $PLACE_TO_CHECK/$AMPS_COMPLETE06 -o \
! -f $PLACE_TO_CHECK/$AMPS_COMPLETE07 -o ! -f $PLACE_TO_CHECK/$AMPS_COMPLETE08 -o \
! -f $PLACE_TO_CHECK/$AMPS_COMPLETE09 -o ! -f $PLACE_TO_CHECK/$AMPS_COMPLETE10 -o \
! -f $PLACE_TO_CHECK/$AMPS_COMPLETE11 -o ! -f $PLACE_TO_CHECK/$AMPS_COMPLETE12 -o \
! -f $PLACE_TO_CHECK/$AMPS_COMPLETE13 -o \
! -f $PLACE_TO_CHECK/$ADD_FILE -o ! -f $PLACE_TO_CHECK/$ANS_FILE -o \
! -f $PLACE_TO_CHECK/$CDQ_FILE -o ! -f $PLACE_TO_CHECK/$COR_FILE -o \
! -f $PLACE_TO_CHECK/$CMP_FILE -o ! -f $PLACE_TO_CHECK/$ISH_FILE -o \
! -f $PLACE_TO_CHECK/$JNL_FILE -o ! -f $PLACE_TO_CHECK/$JRC_FILE -o \
! -f $PLACE_TO_CHECK/$JRF_FILE -o ! -f $PLACE_TO_CHECK/$PRC_FILE -o \
! -f $PLACE_TO_CHECK/$PRH_FILE -o ! -f $PLACE_TO_CHECK/$PYH_FILE -o \
! -f $PLACE_TO_CHECK/$RDR_FILE -o ! -f $PLACE_TO_CHECK/$REV_FILE -o \
! -f $PLACE_TO_CHECK/$RTS_FILE -o ! -f $PLACE_TO_CHECK/$SRC_FILE -o \
! -f $PLACE_TO_CHECK/$CCF_FILE -o ! -f $PLACE_TO_CHECK/$CUR_FILE -o \
! -f $PLACE_TO_CHECK/$CVR_FILE -o ! -f $PLACE_TO_CHECK/$DSP_FILE -o \
! -f $PLACE_TO_CHECK/$GEO_FILE -o ! -f $PLACE_TO_CHECK/$ISC_FILE -o \
! -f $PLACE_TO_CHECK/$LET_FILE -o ! -f $PLACE_TO_CHECK/$PYM_FILE -o \
! -f $PLACE_TO_CHECK/$SBJ_FILE -o ! -f $PLACE_TO_CHECK/$SCT_FILE -o \
! -f $PLACE_TO_CHECK/$STS_FILE -o ! -f $PLACE_TO_CHECK/$SUB_FILE -o \
! -f $PLACE_TO_CHECK/$SVR_FILE -o ! -f $PLACE_TO_CHECK/$TMC_FILE -o \
! -f $PLACE_TO_CHECK/$TWN_FILE -o ! -f $PLACE_TO_CHECK/$USE_FILE -o \
! -f $PLACE_TO_CHECK/$PYF_FILE -o ! -f $PLACE_TO_CHECK/$PPY_FILE -o \
! -f $PLACE_TO_CHECK/$WRD_FILE -o ! -f $PLACE_TO_CHECK/$SDV_FILE -o \
! -f $PLACE_TO_CHECK/$JTC_FILE -o ! -f $PLACE_TO_CHECK/$RCL_FILE -o \
! -f $PLACE_TO_CHECK/$ACP_FILE -o \
! -f $PLACE_TO_CHECK/$ANF_FILE -o ! -f $PLACE_TO_CHECK/$COF_FILE -o \
! -f $PLACE_TO_CHECK/$ISF_FILE -o ! -f $PLACE_TO_CHECK/$PYF_FILE -o \
$PMON_COUNT -eq 0 ]
do
if [ $NO_OF_PAUSES -gt $MAX_PAUSES ]
then
echo "\nLoad process now paused $NO_OF_PAUSES times - Job Cancelled"
touch $LOGS/main/FAILED-dataload
touch $LOGS/main/FINISHED-dataload
$SCRIPTS/msg_fail.ksh
exit 1
fi
if [ $PMON_COUNT -gt 0 ]
then
echo "\nAMPS file(s) missing - load process sleeping for \c"
echo "$SLEEP_MINS minute(s)"
else
echo "\nOracle Instance $ORACLE_SID not running - load process \c"
echo "sleeping for $SLEEP_MINS minute(s)"
fi
sleep $PAUSE_TIME
date
PMON_COUNT=`ps -ef | grep pmon_$ORACLE_SID | grep -v grep | wc -l`
NO_OF_PAUSES=`expr $NO_OF_PAUSES + 1`
echo "NO_OF_PAUSES = $NO_OF_PAUSES"
done
if [ $CONV_FLAG= "'P'"]
then
mv $CONV/$DATAFILE_PFX*.[Tt][Xx][Tt] $DATA
fi
if [ $CONV_FLAG= "'J'"]
then
PLACE_TO_CHECK_DATA=$DATA
PLACE_TO_CHECK_CONV=$CONV
while [ ! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE01 -o ! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE02 -o \
! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE01 -o ! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE02 -o \
! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE05 -o ! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE06 -o \
! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE05 -o ! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE06 -o \
! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE07 -o ! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE08 -o \
! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE07 -o ! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE08 -o \
! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE09 -o ! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE10 -o \
! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE09 -o ! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE10 -o \
! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE11 -o ! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE12 -o \
! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE11 -o ! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE12 -o \
! -f $PLACE_TO_CHECK_DATA/$AMPS_COMPLETE13 -o \
! -f $PLACE_TO_CHECK_CONV/$AMPS_COMPLETE13 -o \
! -f $PLACE_TO_CHECK_DATA/$ADD_FILE -o ! -f $PLACE_TO_CHECK_DATA/$ANS_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$ADD_FILE -o ! -f $PLACE_TO_CHECK_CONV/$ANS_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$CDQ_FILE -o ! -f $PLACE_TO_CHECK_DATA/$COR_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$CDQ_FILE -o ! -f $PLACE_TO_CHECK_CONV/$COR_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$CMP_FILE -o ! -f $PLACE_TO_CHECK_DATA/$ISH_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$CMP_FILE -o ! -f $PLACE_TO_CHECK_CONV/$ISH_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$JNL_FILE -o ! -f $PLACE_TO_CHECK_DATA/$JRC_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$JNL_FILE -o ! -f $PLACE_TO_CHECK_CONV/$JRC_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$JRF_FILE -o ! -f $PLACE_TO_CHECK_DATA/$PRC_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$JRF_FILE -o ! -f $PLACE_TO_CHECK_CONV/$PRC_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$PRH_FILE -o ! -f $PLACE_TO_CHECK_DATA/$PYH_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$PRH_FILE -o ! -f $PLACE_TO_CHECK_CONV/$PYH_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$RDR_FILE -o ! -f $PLACE_TO_CHECK_DATA/$REV_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$RDR_FILE -o ! -f $PLACE_TO_CHECK_CONV/$REV_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$RTS_FILE -o ! -f $PLACE_TO_CHECK_DATA/$SRC_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$RTS_FILE -o ! -f $PLACE_TO_CHECK_CONV/$SRC_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$CCF_FILE -o ! -f $PLACE_TO_CHECK_DATA/$CUR_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$CCF_FILE -o ! -f $PLACE_TO_CHECK_CONV/$CUR_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$CVR_FILE -o ! -f $PLACE_TO_CHECK_DATA/$DSP_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$CVR_FILE -o ! -f $PLACE_TO_CHECK_CONV/$DSP_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$GEO_FILE -o ! -f $PLACE_TO_CHECK_DATA/$ISC_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$GEO_FILE -o ! -f $PLACE_TO_CHECK_CONV/$ISC_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$LET_FILE -o ! -f $PLACE_TO_CHECK_DATA/$PYM_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$LET_FILE -o ! -f $PLACE_TO_CHECK_CONV/$PYM_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$SBJ_FILE -o ! -f $PLACE_TO_CHECK_DATA/$SCT_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$SBJ_FILE -o ! -f $PLACE_TO_CHECK_CONV/$SCT_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$STS_FILE -o ! -f $PLACE_TO_CHECK_DATA/$SUB_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$STS_FILE -o ! -f $PLACE_TO_CHECK_CONV/$SUB_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$SVR_FILE -o ! -f $PLACE_TO_CHECK_DATA/$TMC_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$SVR_FILE -o ! -f $PLACE_TO_CHECK_CONV/$TMC_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$TWN_FILE -o ! -f $PLACE_TO_CHECK_DATA/$USE_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$TWN_FILE -o ! -f $PLACE_TO_CHECK_CONV/$USE_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$PYF_FILE -o ! -f $PLACE_TO_CHECK_DATA/$PPY_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$PYF_FILE -o ! -f $PLACE_TO_CHECK_CONV/$PPY_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$WRD_FILE -o ! -f $PLACE_TO_CHECK_DATA/$SDV_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$WRD_FILE -o ! -f $PLACE_TO_CHECK_CONV/$SDV_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$JTC_FILE -o ! -f $PLACE_TO_CHECK_DATA/$RCL_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$JTC_FILE -o ! -f $PLACE_TO_CHECK_CONV/$RCL_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$ACP_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$ACP_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$ANF_FILE -o ! -f $PLACE_TO_CHECK_DATA/$COF_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$ANF_FILE -o ! -f $PLACE_TO_CHECK_CONV/$COF_FILE -o \
! -f $PLACE_TO_CHECK_DATA/$ISF_FILE -o ! -f $PLACE_TO_CHECK_DATA/$PYF_FILE -o \
! -f $PLACE_TO_CHECK_CONV/$ISF_FILE -o ! -f $PLACE_TO_CHECK_CONV/$PYF_FILE -o \
$PMON_COUNT -eq 0 ]
do
if [ $NO_OF_PAUSES -gt $MAX_PAUSES ]
then
echo "\nLoad process now paused $NO_OF_PAUSES times - Job Cancelled"
touch $LOGS/main/FAILED-dataload
touch $LOGS/main/FINISHED-dataload
$SCRIPTS/msg_fail.ksh
exit 1
fi
if [ $PMON_COUNT -gt 0 ]
then
echo "\nAMPS file(s) missing - load process sleeping for \c"
echo "$SLEEP_MINS minute(s)"
else
echo "\nOracle Instance $ORACLE_SID not running - load process \c"
echo "sleeping for $SLEEP_MINS minute(s)"
fi
sleep $PAUSE_TIME
date
PMON_COUNT=`ps -ef | grep pmon_$ORACLE_SID | grep -v grep | wc -l`
NO_OF_PAUSES=`expr $NO_OF_PAUSES + 1`
echo "NO_OF_PAUSES = $NO_OF_PAUSES"
done
mv $DATA/$DATAFILE_PFX*.txt $DATA/$DATAFILE_PFX*.cnv
cat $CONV/$DATAFILE_PFX*.txt $DATA/$DATAFILE_PFX*.cnv >$DATA/$DATAFILE*.txt
rm $CONV/$DATAFILE_PFX*.txt
fi
echo "\nAll AMPS files in Data directory - starting Warehouse Dataload...\n"
# name the scripts
S0=load_txt.ksh
S1=merge_process.ksh
----------------------------------------------
