Syntax error near unexpected token `else'


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Syntax error near unexpected token `else'
# 1  
Old 05-22-2013
Syntax error near unexpected token `else'

Hi,

I am trying to read the session log through script. But it keeps showing me some error near. I have tried everything. Even tried converting the script using sed command to remove the hidden characters(\r).But nothing seems to be working.Below is the script :

Code:
#!/bin/bash
cd /app/Informatica/INFA95/server/infa_shared/SessLogs
grep -A 20 'SESSION LOAD SUMMARY' s_m_SCENARIO_3.log > abc.txt
rm s_m_SCENARIO_3.log
cd..
count=0
cat abc.txt | while read line
do
if[ $count -eq 1 ]then
echo " source records " >> record.txt
echo $line | grep 'Output Rows' >> record.txt
elif[ $count - eq 2 ]then
echo " target records" >> record.txt
echo $line | grep 'Output Rows' >> record.txt
else
echo "nothing"
fi
echo $line | grep -nF 'Instance Name: [SQ_'
if [ $? -eq 0 ]
then
count=1
elif
echo $line | grep 'Instance Name'
count=2
else
count=0
fi
done


Thank You in advance for you help Smilie
# 2  
Old 05-22-2013
Use code tags for code please.

You need spaces on either side of the [ and ], you can't let them touch other characters. You can't put 'then' on the same line without a ; inbetween. You need a then for elif, too.

Code:
if [ ... ]
then
...
elif [ ... ]
then
...
else
...
fi

# 3  
Old 05-23-2013
Thanks for replying Corona688.

I have kept proper spaces between [ and ], when i keep then in the next line it gives me the same error

"syntax error near unexpected token `then'

Lastly i have used a then after elif too, its just not placed in the next line.

---------- Post updated at 02:29 PM ---------- Previous update was at 02:25 PM ----------

Thank you soo much Corona688 it worked

---------- Post updated 05-23-13 at 05:53 AM ---------- Previous update was 05-22-13 at 02:29 PM ----------

Hi ,
My Script is working now but it is showing too many arguments Smilie

Code:
count=0
cat abc.txt | while read line
do
if [ $count -eq 1 ]
then
echo " source records " >> record.txt
echo $line | grep 'Output Rows'  >> record.txt
elif [ $count - eq 2 ]
then
echo " target records" >> record.txt
echo $line | grep 'Output Rows' >> record.txt
else
echo "nothing"
fi
echo $line | grep -nF 'Instance Name: [SQ_'
if [ $? -eq 0 ]
then
count=1
elif echo $line | grep 'Instance Name'
then
count=2
else
count=0
fi
done

Thanks,
Gaurav

Last edited by Scott; 05-23-2013 at 09:00 AM.. Reason: Please use code tags
# 4  
Old 05-23-2013
Quote:
Originally Posted by Aryan12345
Thanks for replying Corona688.

I have kept proper spaces between [ and ], when i keep then in the next line it gives me the same error

"syntax error near unexpected token `then'

Lastly i have used a then after elif too, its just not placed in the next line.

---------- Post updated at 02:29 PM ---------- Previous update was at 02:25 PM ----------

Thank you soo much Corona688 it worked

---------- Post updated 05-23-13 at 05:53 AM ---------- Previous update was 05-22-13 at 02:29 PM ----------

Hi ,
My Script is working now but it is showing too many arguments Smilie

Code:
count=0
cat abc.txt | while read line
do
if [ $count -eq 1 ]
then
echo " source records " >> record.txt
echo $line | grep 'Output Rows'  >> record.txt
elif [ $count - eq 2 ]
then
echo " target records" >> record.txt
echo $line | grep 'Output Rows' >> record.txt
else
echo "nothing"
fi
echo $line | grep -nF 'Instance Name: [SQ_'
if [ $? -eq 0 ]
then
count=1
elif echo $line | grep 'Instance Name'
then
count=2
else
count=0
fi
done

Thanks,
Gaurav
Change [ $count - eq 2 ] to [ $count -eq 2 ].
This User Gave Thanks to Don Cragun For This Post:
# 5  
Old 05-23-2013
Thanks Corona688 Smilie
# 6  
Old 05-23-2013
That was Don Cragun this time. Smilie
# 7  
Old 05-23-2013
Ohhh , Thanks Don Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Ubuntu

Syntax error near unexpected token `('

detect_mouse_mvt.sh /home/andy/bin/detect_mouse_mvt.sh: line 4: syntax error near unexpected token `(' /home/andy/bin/detect_mouse_mvt.sh: line 4: `fh = file('/dev/input/mice')' #!/bin/bash # # fh = file('/dev/input/mice') while True: fh.read(3) print 'Mouse... (15 Replies)
Discussion started by: drew77
15 Replies

2. UNIX for Beginners Questions & Answers

Syntax error near unexpected token

Dears, While executing the below script im getting the error at line 30. Please let me know what changes to be done to fix this. test.sh: line 30: syntax error near unexpected token `done' test.sh: line 30: ` done ' #!/bin/sh # Rev. PA1 # author: eillops # date: 26-04-2018 # #... (1 Reply)
Discussion started by: Kamesh G
1 Replies

3. How to Post in the The UNIX and Linux Forums

Syntax error near unexpected token `('

I have 2 files like a.txt and b.txt and the content is as below cat a.txt 810750125 117780 /BSCSQAT4A/bscsqat4a/lib/jar/wclt_common.jar 1803152428 13300 /BSCSQAT4A/bscsqat4a/lib/jar/WFMSSupportTool.jar 2663502779 67049 /BSCSQAT4A/bscsqat4a/lib/jar/wma.jar 687942896 665272... (1 Reply)
Discussion started by: ranabhavish
1 Replies

4. Shell Programming and Scripting

Syntax error near unexpected token

Hi all, I have a simple script that doesn't work somehow. I can't seem to be spotting the cause of the malfunction. count=$((1)) for item in `cat test1.txt` printf %s `sed -n $((count))p test2.txt` > test3.txt count=$((count+1)) do something done I get ; ./why.sh: line 3:... (14 Replies)
Discussion started by: y33t
14 Replies

5. Shell Programming and Scripting

Syntax error near unexpected token '('

I tried to execute the code but I got this error ./Array.c: line 9: syntax error near unexpected token '(' ./Array.c: line 9: ' nvals = get_data(a,MAXARRAY);' and #include<stdio.h> #define MAXARRAY 1000 main() { int a, nvals; nvals =... (7 Replies)
Discussion started by: sgradywhite
7 Replies

6. Shell Programming and Scripting

Syntax error near unexpected token `('

What do I do here? #!/bin/bash payload=-1 AND 1=IF(21,BENCHMARK(5000000,MD5(CHAR(115,113,108,109,97,112))),0)# hash=`echo -n $payload md5sum tr -d 'n' sed 'ss-sg' md5sum tr -d 'n' sed 'ss-sg'` curl --data cs2=chronopay&cs1=$payload&cs3=$hash&transaction_type=rebill... (2 Replies)
Discussion started by: iiiiiiiiiii
2 Replies

7. Shell Programming and Scripting

syntax error near unexpected token `='

Hi all, This is a script which converts hex to bin. However am finding an error while executing syntax error near unexpected token `=' `($hexfile, $binfile) = @ARGV;' I am running using ./fil.pl <hexfile> <binfile> ################################################### # # this script... (3 Replies)
Discussion started by: jaango123
3 Replies

8. UNIX for Advanced & Expert Users

syntax error near unexpected token '{

Hi, I am running the following script through cygwin and getting below mentioned error. ******************************************* #!/bin/sh # constants WORK_DIR="deploy" INFOFILE="deploy.info" INTROFILE="Intro.sh" CMGMT_PKG="com.kintana.cmgmt.deploy" DEPLOY_PREFIX="mitg" ... (2 Replies)
Discussion started by: MandyR
2 Replies

9. Shell Programming and Scripting

Syntax error near unexpected token `('

Guys , This is an output of my script errored out for "Syntax error near unexpected token `(' " Can someone tell me whats wrong with my script. Below is my original script pasted. #!/bin/bash Script Creation Date 01/21/2010 Author baraghun ... (7 Replies)
Discussion started by: raghunsi
7 Replies

10. Shell Programming and Scripting

sh syntax error unexpected token done

I'm getting the following error: line 21: syntax error near unexpected token `done` line 21: `done` and I haven't been able to figure out why. Here is my code #!/bin/sh if ; then echo 'Usage: rename getexp/replStr ' exit 0 fi arg = $1 shift while ; do (5 Replies)
Discussion started by: NullPointer
5 Replies
Login or Register to Ask a Question

Featured Tech Videos