Hi, below is the script in ksh and i am having issues with if condition.
It takes in one argument as input and executes the shell script.
The problem is in if condition in shell script. If input is given as 1 it works out well. But if input is given as 2 or something else the script is failing to go into if condition.
Could some please have a lok and please let me know what is wrong.
below if the if conditions from script below:(its not entering into these given conditions:
------------
if [ "$axisfile" = "v2_pcr2ecm_dly_coverage_$dat".txt ];then
status=`sqlplus -s / @$PCR_HOME/sql/extract/v2_pcr2ecm_dly_coverage.sql $PCR_HOME/data/$axisfile`
status1=$?
fi
--------------
#!/bin/ksh -x
. $HOME/.profile 2>/dev/null
. $PCR_HOME/conf/env.ini
. $PCR_HOME/bin/log_message.sh
cd $PCR_HOME/log
export input=$1
dat=`date +"20%y%m%d`
dat1=`date +%a%t%b%t%d%t%T%t%Z%t%Y`
if [ $input -eq 1 ]
then
rm -f $PCR_HOME/data/v2_pcr2ecm_dly_rds_clients*.txt
rm $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
axisfile="v2_pcr2ecm_dly_rds_clients_$dat".txt
axisokfile="v2_pcr2ecm_dly_rds_clients_$dat".ok
elif [ $input -eq 2 ]
then
rm -f $PCR_HOME/data/v2_pcr2ecm_dly_rds_coverage*.txt
rm $PCR_HOME/log/$pcr2ecm_dly_rds_coverage.log
axisfile="v2_pcr2ecm_dly_coverage_$dat".txt
axisokfile="v2_pcr2ecm_dly_coverage_$dat".ok
elif [ $input -eq 3 ]
then
rm -f $PCR_HOME/data/v2_pcr2ecm_dly_rds_products*.txt
rm $PCR_HOME/log/$pcr2ecm_dly_rds_products.log
axisfile="v2_pcr2ecm_dly_pcr_products_$dat".txt
axisokfile="v2_pcr2ecm_dly_pcr_products_$dat".ok
elif [ $input -eq 4 ]
then
rm -f $PCR_HOME/data/v2_pcr2ecm_dly_rds_employees*.txt
rm $PCR_HOME/log/$pcr2ecm_dly_rds_employees.log
axisfile="pcr2ecm_dly_rds_employees_$dat".txt
axisokfile="pcr2ecm_dly_rds_employees_$dat".ok
fi
started="started_executing_$axisfile"
ended="ended_executing_$axisfile"
error="error_during_extract"
error1="error_during_extraction1"
norows="norows_extracted"
start_ftp="started_ftp_the_file"
end_ftp="ended_ftp_the_file"
echo "Creating : $axisfile"
#export $extract_log=${axisfile%%.*}.log
#extract_log=/data/eqpcs/pcrusr/pcr/log/pcr2ecm_dly_rds_clients.log
#echo `date '+%d-%m-%y %H:%M:%S'` "Extract process started" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile 0 $started
if [ "$axisfile" = "v2_pcr2ecm_dly_rds_clients_$dat".txt ];then
status=`sqlplus -s / @$PCR_HOME/sql/extract/v2_pcr2ecm_dly_rds_clients.sql $PCR_HOME/data/$axisfile`
status1=$?
fi
if [ "$axisfile" = "v2_pcr2ecm_dly_coverage_$dat".txt ];then
status=`sqlplus -s / @$PCR_HOME/sql/extract/v2_pcr2ecm_dly_coverage.sql $PCR_HOME/data/$axisfile`
status1=$?
fi
if [ "$axisfile" = "v2_pcr2ecm_dly_rds_products_$dat".txt ];then
status=`sqlplus -s / @$PCR_HOME/sql/extract/v2_pcr2ecm_dly_pcr_products.sql $PCR_HOME/data/$axisfile`
status1=$?
fi
if [ "$axisfile" = "v2_pcr2ecm_dly_rds_employees_$dat".txt ];then
status=`sqlplus -s / @$PCR_HOME/sql/extract/pcr2ecm_dly_rds_employees.sql $PCR_HOME/data/$axisfile`
status1=$?
fi
wcl=`wc -l $PCR_HOME/data/$axisfile`
file_cnt=`echo $wcl | cut -f1 -d " "`
file_cnt=`expr $file_cnt - 1`
#echo "File Count : $file_cnt" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
hash_value=`cksum $PCR_HOME/data/$axisfile | awk '{print $1}'`
rm -f $PCR_HOME/log/$axisokfile
echo $dat1 > $PCR_HOME/log/$axisokfile
#echo "\nNo. of rows in the generated file :$file_cnt" >> $PCR_HOME/log/$axisokfile
#echo "\n CheckSum Value is :$hash_value" >> $PCR_HOME/log/$axisokfile
echo "$hash_value" >> $PCR_HOME/log/$axisokfile
#echo "status : $status1" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
#echo `date '+%d-%m-%y %H:%M:%S'` "Extract process completed" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile $file_cnt $ended
if [ $status1 -ne 0 ]
then
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile 0 $error
#echo `date '+%d-%m-%y %H:%M:%S'` "FATAL - Error in ECM extraction Process \n\n" >> $PCR_HOME/log/
$pcr2ecm_dly_rds_clients.log
cat $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log | mailx -s "Fatal - Error in ECM Extraction process "
abc@abc.com
echo `date '+%d-%m-%y %H:%M:%S'` "Email Successfully Sent Out1" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
exit 1;
elif [ $file_cnt -eq 0 ]
then
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile 0 $norows
#echo "\nNo rows in ECM extract.Please look into that" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
cat $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log | mailx -s "No rows in ECM extract.Please look into that "
abc@abc.com
exit 1;
elif [ `cat $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log | grep -i "ERROR" | wc -l` -gt 0 ]
then
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile 0 $error1
#echo "FATAL - Error in extraction Process Table\n\n" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
cat $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log | mailx -s "Fatal - ECM Extraction process Failed "
abc@abc.com
#echo `date '+%d-%m-%y %H:%M:%S'` "Email Successfully Sent Ou2t" >> $PCR_HOME/log/$pcr2ecm_dly_rds_clients.log
exit 1;
elif [ "$axisfile" = "v2_pcr2ecm_dly_rds_clients_$dat".txt -o "$axisfile" = "v2_pcr2ecm_dly_coverage_$dat".txt -o
"$axisfile" = "v2_pcr2ecm_dly_rds_products_$dat".txt -o "$axisfile" = "v2_pcr2ecm_dly_rds_employees_$dat".txt -o
"$axisfile" = "v2_pcr2ecm_dly_rds_teams_$dat".txt ]; then
#echo "File copying to ECM server " >> $PCR_HOME/log/$axisokfile
##################################################
# csv file is ftped to ECM server
##################################################
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile $file_cnt $start_ftp
#cd $PCR_HOME/data
#sftp $DA_USER@$DA_SERVER <<END
#lcd $PCR_HOME/data
#put $axisfile $DA_DIR/$axisfile
#lcd $PCR_HOME/log
#put $axisokfile $DA_DIR/$axisokfile
#bye
#END
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile $file_cnt $end_ftp
cd $PCR_HOME/data
gzip -9 $PCR_HOME/data/$axisfile
exit 0
fi
if [ "$axisfile" = "v2_pcr2ecm_wkly_mainbase_maps_$dat".txt ];
then
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile $file_cnt $start_ftp
cd $PCR_HOME/data
sftp $DAMB_USER@$DAMB_SERVER <<END
lcd $PCR_HOME/data
put $axisfile $DAMB_DIR/$axisfile
lcd $PCR_HOME/log
put $axisokfile $DAMB_DIR/$axisokfile
bye
END
sqlplus -s / @/data/eqpcs/pcrusr/pcr/sql/extract/extract.sql $axisfile $file_cnt $end_ftp
cd $PCR_HOME/data
gzip -9 $PCR_HOME/data/$axisfile
exit 0
fi