Hello All,
I am newbe to scripting and have just taken over following script from previous developer. I am getting following error when running the script. line 70: syntax error near unexpected token `do
Could some help me to rectify the error please. Thanks in advance for your help.
Code:
files_found=N
csv_file_type=NONE
client_code=NONE
client_file_id=NONE
#|--------------------------------------------
#| Check arguments passed
#|---------------------------------------------
if [ $# = 0 ]
then
echo "===> ERROR : No parameters were passed to this Program <===="
exit
fi
#|--------------------------------------------
#| Report arguments passed
#|---------------------------------------------
printf "\nThe arguments passed are: $*\n"
#|--------------------------------------------
#| Check the apps password
#|---------------------------------------------
ret=`sqlplus -s $1 <<!!
exit;
!!`
if [ -n "$ret" ] ; then
echo $ret
printf "===> ERROR : Incorrect password for oracle user apps <=== \n"
exit 1
fi
#|--------------------------------------------
#| Check the inbound file directory exists
#|---------------------------------------------
INBOUND_DIRECTORY=$5
echo $INBOUND_DIRECTORY
if [ ! -s "$INBOUND_DIRECTORY" ] ; then
printf "\n"
printf "===> ERROR : The file directory $INBOUND_DIRECTORY cannot be found .... exiting.. <=== \n"
printf "\n"
exit 1
fi
#|-----------------------------------------------------
#| Function checks if second string is in first string
#|----------------------------------------------------
function checkstr
{ a=${1/$2*/}
if [ "$1" = "$a" ]
then
return 1
else
return 0
fi
}
#|---------------------------------------------------------------------------------------
#| Loop through files in directory
#| Puts the file name in first field of each file line
#| Grabs the file size and date into variables
#|---------------------------------------------------------------------------------------
for csv_dir_file in `ls /orautildir/FEXTESTC/*.csv 2>/dev/null`
do
files_found=Y
# Removes the directory from the file name by copying only last field
# $NF is the last field and -F/ makes / the field separator
csv_file=`echo "$csv_dir_file" | awk -F/ '{ print $NF }'`
#printf "File IS $csv_file \n"
#Grabs first field, note -F sets the field separator to a comma
first_field=`head -1 $csv_dir_file | awk -F, '{ print $1 }'`
if [ "$csv_file" != "$first_field" ]
then
printf "File name and 1st field are different \n"
sed "1,$ s/^/$csv_file,/" $csv_dir_file > $csv_dir_file.tmp #Replace Start of Line with Filename
mv $csv_dir_file.tmp $csv_dir_file # " instead of ' allows $i to be a shell variable
fi
csv_file_dir=$INBOUND_DIRECTORY
csv_file_date=`ls -l "$csv_dir_file" | awk '{ print $8" "$6"-"$7 }' `
csv_file_size=`ls -l "$csv_dir_file" | awk '{ print $5 }' `
printf "File found is $csv_file in directory is $csv_file_dir with date is $csv_file_date and size is $csv_file_size \n"
printf "\n"
#|-----------------------------------------------------
#| Check the type of file from the file name
#|-----------------------------------------------------
filename=`echo "$csv_file" | tr 'A-Z' 'a-z'` # Brings everything to lowercase
if checkstr "$filename" "err" # Checks if "error" is in the file name
then
csv_file_type=ERROR_FILE
client_code=`head -1 $csv_dir_file | awk -F, '{ print $2 }' ` # Grabs client code from 2nd field
client_file_id=`head -1 $csv_dir_file | awk -F, '{ print $4 }' ` # Grabs client file id from 4th field
elif checkstr "$filename" "feed"
then
csv_file_type=FEEDBACK_FILE
client_code=`head -1 $csv_dir_file | awk -F, '{ print $2 }' ` # Grabs client code from 2nd field
client_file_id=`head -1 $csv_dir_file | awk -F, '{ print $4 }' ` # Grabs client file id from 4th field
else
csv_file_type=NONE
client_code=NONE
client_file_id=NONE
fi
printf "The client file id is $client_file_id \n "
#|-----------------------------------------------------
#| Log the file's arrival in a table
#|----------------------------------------------------
if [ $csv_file_type != "NONE" ] && [ $client_code != "NONE" ] && [ $client_file_id != "NONE" ]
then
log=`sqlplus -s $1 <<EOS
SET FEEDBACK OFF;
WHENEVER SQLERROR EXIT;
INSERT INTO XXFIN.FIPS_FILES(client_file_id,client_code,file_name,file_directory,file_date,file_size,file_type,status)
VALUES($client_file_id,$client_code,'$csv_file','$csv_file_dir','$csv_file_date',$csv_file_size,'$csv_file_type','NEW');
COMMIT;
EXIT;
EOS`
if [ -n "$log" ] ; then
if checkstr "$log" "FIPS_FILES_UI"
then
printf " \n "
printf "===================================================================== \n "
printf "===> This file FILE $csv_file has ALREADY been loaded <=== \n "
printf "===================================================================== \n "
printf " \n "
else
printf "===> ERROR : Failed to insert into table FIPS_FILES for file $csv_file , Message $log \n "
exit 1
fi
fi
fi
done
#|-----------------------------------------------------
#| Return error if no files were found in the directory
#|-----------------------------------------------------
if [ $files_found == "N" ]
then
printf "\n"
printf "===> ERROR No .csv files were found in directory $INBOUND_DIRECTORY <=== \n"
printf "\n"
exit 1
fi
---------- Post updated at 08:07 AM ---------- Previous update was at 07:25 AM ----------
Hi ,
Looks like something fundamental amiss. I tried to run this small script and still got the same error.
Code:
for var in A B C ;do
echo "var is $var"
done
We are on Red Hat Enterprise Linux Server release 5.3 (Tikanga) Kernel \r on an \m
Last edited by Scott; 10-28-2010 at 08:00 AM..
Reason: rm colors - code tags please!
Hi,
I have written a small shell script which logs into each oracle database on the server and displays whether it is in archivelog mode or not.. The script is as under:
#!/bin/bash
dblist=`ps -ef | grep smon | grep -v grep |cut -d'_' -f3`
for ohome in $dblist; do
sqlplus -s /nolog <<... (2 Replies)
hi there
i write one awk script file in shell programing
the code is related to dd/mm/yy to month, day year format
but i get an error
please can anybody help me out in this problem ??????
i give my code here including error
awk `
# date-month -- convert mm/dd/yy to month day,... (2 Replies)
Hi,
I have the following table in MYSQL: (the structure looks broken in this forum but if you copy/paste it into notepad, it'll look right):
+----------------------------+-----------------------+------+-----+---------+----------------+
| Field | Type |... (0 Replies)
I need help in the following script. I want to grep the sql errors insert into the error table and exit the shell script if there is any error, otherwise keep running the scripts.
Here is my script
#!/bin/csh -f
source .orapass
set user = $USER
set pass = $PASS
cd /opt/data/scripts
echo... (2 Replies)
hello everyone
i am beginner on shell scripting .and i am working on my project work on ad hoc network
i wrote a batch (.sh) to do a looping and execute a tcl script i wrote before in each iteration ..but i got this problem "
syntax error near unexpected token `('... (1 Reply)
HI,
We are using two shell scripts, script.sh,env.sh, where env.sh will be called inside script.sh. The variable inside env.sh is used as $var in script.sh.But while running the script its not identifying that variable. Is there any permission needed to call a script inside another script.
... (3 Replies)
I am getting the following error while passing parameter to a shell script called within awk script. Any idea what's causing this issue and how to ix it ? Thanks
sh: -c: line 0: syntax error near unexpected token `newline'
sh: -c: line 0: `./billdatecalc.sh ... (10 Replies)
Hi All
when I execute from psql prompt, I get the result, when I try to automate
using a shell script, the query is not working
# `/usr/bin/psql -U postgres -d coba1 -c "select name from users where
"Date" > current_date - 30;"`
ERROR: column "Date" does not exist
LINE 1: select... (2 Replies)