else unmatched


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting else unmatched
# 1  
Old 10-09-2007
else unmatched

I'm getting an else unmatched error on the script below..

For info : SYDB is the database name entered as a param on the command line.

#Check the DB name
HBDB=`sql $SYDB <<_END_ | grep '^|' | grep -v dbase | sed 's/|//g' | sed 's/ //g'
set autocommit on;
\p\g
set lockmode session where readlock = nolock;
\p\g
select squeeze(trim(dbase)) as dbase
from syapplic
where applic_id = 'hb';
\p\g
_END_`

if [ -z "$HBDB" ]
then
echo "The HB Database name given is not a valid database!"
exit 1
else
echo "The Hb database name is $HBDB "
echo " "
fi

# Declare variables for output
MAINFOLDER=/*server location*/sig10
FILEDATE=`date +%Y%m%d`
FILETIME=`date +%H:%M:%S`
OUTPUTFILE="$MAINFOLDER/Sig_Birthdays_10_$FILEDATE.csv"

#check that the comparison tale exists withing the HBDB
TBL_CHECK=`sql $HBDB <<_END_ | grep '^|' | grep -v table_name | sed 's/|//g' | sed 's/ //g'
set autocommit on;
\p\g
set lockmode session where readlock = nolock;
\p\g
select table_name
from iitables
where table_name = 'bh_sig_10';
\p\g
_END_`

echo $TBL_CHECK

if [ "$TBL_CHECK" = "bh_sig_10" ]
then
echo "Comparison table exists"
else
echo "Comparison table does not exist - Script will create table"
sql $HBDB <<_END_ > $MAINFOLDER/Create_comparison_table.txt
set autocommit on;
\p\g
set lockmode session where readlock = nolock;
\p\g
create table bh_sig_10 (
claim_id i4,
title varchar 4,
forename varchar 32,
surname varchar 32,
birth_date date
)
with nojournaling,
noduplicates;
\p\g
_END_
fi
...

I get the else unmatched on that else in bold....any clues?
# 2  
Old 10-09-2007
I may have missed it, but I don't see the "fi" to go with the "if-then-else" statement in question
# 3  
Old 10-09-2007
fi

Quote:
Originally Posted by b.hamilton

#<snip>....

if [ "$TBL_CHECK" = "bh_sig_10" ]
then
echo "Comparison table exists"
else
echo "Comparison table does not exist - Script will create table"
sql $HBDB <<_END_ > $MAINFOLDER/Create_comparison_table.txt
set autocommit on;
\p\g
set lockmode session where readlock = nolock;
\p\g
create table bh_sig_10 (
claim_id i4,
title varchar 4,
forename varchar 32,
surname varchar 32,
birth_date date
)
with nojournaling,
noduplicates;
\p\g
_END_
fi
...

I get the else unmatched on that else in bold....any clues?
if/then/else/fi now in bold.
# 4  
Old 10-09-2007
Yep, missed it the first time through.

I cut and paste this into my own UNIX box, and then tried "ksh -n" - and no errors were reported. It should have found a mismatched "else" statement.

Mostly likely cause then is some whitespace that the cut/paste is ignoring. Which means to make sure there are no extraneous characters before or after the "_END_" just before the fi.

I have made that mistake before, putting a space afterwards, and then trying to find it when the IO-redirect didn't work.
# 5  
Old 10-10-2007
Error still not working

Hi, I checked for that but it's still not working.

I commented out that whole if/then/else/fi, as its not really required, and then saved a test version of the script and removed the comments (I know that on the database I'll be running this on, the table does exist), It works OK with that bit commented out, I can't fathom why it's doing this, but I always get;

"sig10-test.sh[63]: syntax error at line 66 : `else' unmatched"

<attachment removed>

Thanks for any help.

Last edited by b.hamilton; 10-10-2007 at 05:56 AM..
# 6  
Old 10-10-2007
The error is your indentation of "_END_".

To use:

xxxx <<_END_

the closing _END_ must be at the far left, ie, immediately following the newline.
# 7  
Old 10-10-2007
OK - I dind't realise that the space before the _END_ would have any effect, this is the first time I've ever used << _END within an else/then, and generally indent them as it makes it clearer. Will know in future. Thanks for the help.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

<< unmatched error

Hi all, I want to call a plsql package that does not return any value. I am using the following script to do so: sqlplus $UserNamePwd <<EOF set head off begin test_pkg.procedure('$DebugFlag'); end; exit EOF if then log_message "procedure failed." exit 1 fi exit $? I... (2 Replies)
Discussion started by: reshma15193
2 Replies

2. Shell Programming and Scripting

If statement with unmatched condition

Hi Gurus, I'm facing some issues with multiple conditions in my if statement. if (!($InputLine=~/^Date/)) && (!($fields eq "VEN")) { Above is the line troughing some syntax errors. I am trying to avoid the below creteria lines to process in my logic. Records starting with... (4 Replies)
Discussion started by: hi.villinda
4 Replies

3. Shell Programming and Scripting

Unmatched <<

Hi, I am running sinple ksh script . From some reason it failed on the following error: ./ogg_status.sh: syntax error at line 16 : `<<' unmatched Please advise. #!/usr/bin/ksh export ORACLE_HOME=/software/oracle/DB10gR2 export LD_LIBRARY_PATH=/software/oracle/DB10gR2/lib:/usr/lib... (4 Replies)
Discussion started by: yoavbe
4 Replies

4. Shell Programming and Scripting

Find Unmatched name from given lists..

i have two lists, list1 => abc jones oracle smith ssm tty list2 => abc jones lmn smith ssm xyz now i want to print only those names which are present in list2 and want to remove names from list2 which presents in list1. so i want OUTPUT => lmn xyz because "abc jones smith ssm" from list2... (5 Replies)
Discussion started by: Killer420
5 Replies

5. Shell Programming and Scripting

Unknown error - ``' unmatched

Hi Guys, I get the error while running below commands. Earlier the command used to execute, but after enclosing them in a function, the error is occuring backupPath=`echo $folderName | sed -e 's,/vobs/dte/itgClient/client/RegressionTestLibPostOHS/,,'` check_event=`cat... (7 Replies)
Discussion started by: ajincoep
7 Replies

6. Shell Programming and Scripting

remove unmatched values

Below is my requirement : unmatched values should get deleted from file1 file1 A-1 B-1 C-1 D-2 E-3 F-4 file2 D C F output C-1 D-2 F-4 (2 Replies)
Discussion started by: lavnayas
2 Replies

7. Shell Programming and Scripting

`for' unmatched

:b:Hi guys, I am getting this error in this piece of code, Any help will be appreciate rypidoc.shl: syntax error at line 79 : `for' unmatched ##Determine if there is a file to process ls 3526*.dat > /dev/null 2>&1 if then exit fi for i in 3526*.dat do # Capture just the file... (2 Replies)
Discussion started by: rechever
2 Replies

8. Shell Programming and Scripting

done' unexpected and do' unmatched

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... (6 Replies)
Discussion started by: LRoberts
6 Replies

9. Shell Programming and Scripting

input file unmatched

Hello guys, I am trying to run an installer through my script. Whatever yes/no or values required during the installation is provided by an answer file (answ.txt) ./install < /var/answ.txt Now, during the installation, it asks for: 1) press return to continue 2) press 3 and hit enter 3)... (1 Reply)
Discussion started by: solaix14
1 Replies

10. Shell Programming and Scripting

list of unmatched columns

Hi , I have two files want to compare and list of column values and postion which are not matched between two files,I can use diff but it will return rows from two files which are matched and unmatched columns.I wrote the below script but not working. f1=$1 f2=$2 for i in 1 do file1=`cat... (3 Replies)
Discussion started by: mohan705
3 Replies
Login or Register to Ask a Question