Error in if else statements


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Error in if else statements
# 1  
Old 01-13-2015
Error in if else statements

Hi All,

In below script I'm trying to match one column of a table value "True".If value is True then echo "Condition Satisfied" if not then "Condition not Satisfied" by using if and else statement this will be a expression condition checking the type value for 5 number of times.

Code:
#!/bin/bash
# set -xv
echo ' '
MessageDir=/hometype.out
ScriptName=Type_TEST
ScriptOutput=${MessageDir}/${ScriptName}.all.`date +"%y%m%d%H%M%S"`.msg
{
S3=TRUE
z=5
A=1
while [ $A -le $z ]
do
<DBconnection> 
"SELECT TYPE FROM TEST_TYPE" > /hometype.out
m=`sed -n '3,$s/.*| \([^ ]*\) */\1/p' /hometype.out`
if [ $m == $S3 ];
echo "$m=$S3 "
echo "Condition Satisfied"
echo "$(m) --> current value"
rm /hometype.out
exit 12

else

echo ' '
echo `date` 
echo "condition not satisfied"

sleep 120
A=`expr $A + 1`
} >> $ScriptOutput
fi
done
exit 12

but while running this script,I'm getting
Code:
test_type: line 23: syntax error near unexpected token `else'
test_type: line 23: `else'

Can any body Please tell what is the thing ..I'm missing here. Thanks in advance.
# 2  
Old 01-13-2015
use below -- then keyword missing
Code:
if [ "$m" == "$S3" ]
then

instead
Code:
if [ $m == $S3 ]

# 3  
Old 01-13-2015
Hi Pravin,
Thanks for your reply.
now I'm getting this Error.
Code:
test_type: line 31: syntax error near unexpected token `}'
test_type: line 31: `} > $ScriptOutput'

# 4  
Old 01-13-2015
Reverse the order of fi and done and }. I.e. take care to close the inner loops/structures first.

Last edited by RudiC; 01-13-2015 at 09:38 AM.. Reason: structures
# 5  
Old 01-13-2015
It would be a lot easier to see if you indented your code.
This User Gave Thanks to CarloM For This Post:
# 6  
Old 01-13-2015
Little fixed and cleaned. And used more builtin commands.

Code:
#!/bin/bash
# set -xv
echo 
MessageDir=/hometype.out
ScriptName=Type_TEST
ScriptOutput=${MessageDir}/${ScriptName}.all.$(date '+%y%m%d%H%M%S').msg

> "$ScriptOutput"

S3=TRUE
z=5
A=1 
while (( A <= z ))
do
    DB_Something > /hometype.out
    m=$( sed -n '3,$s/.*| \([^ ]*\) */\1/p' /hometype.out )

    if [ "$m" = "$S3" ] 
    then
         echo "$m=$S3 "
         echo "Condition Satisfied"
         echo "$m --> current value"
         rm -f /hometype.out 2>/dev/null
         exit 12
    else
         echo 
         date
         echo "condition not satisfied"
         sleep 120
         ((A=A+1))
    fi
done >> "$ScriptOutput"
exit 12

# 7  
Old 01-13-2015
Code:
echo > "$ScriptOutput

Code:
while [[ $A -lt $z ]]

Code:
sleep 120
A=$(($A+1))

Thats all i see atm, hope this helps

---------- Post updated at 17:04 ---------- Previous update was at 16:59 ----------

Oops not quite, there is another thing:

Code:
S3=TRUE
....
    m=$( sed -n '3,$s/.*| \([^ ]*\) */\1/p' /hometype.out )
...
    if [ "$m" = "$S3" ]

If you want to verify the sed command was successfull, then try this:
Code:
sed -n '3,$s/.*| \([^ ]*\) */\1/p' /hometype.out 
m=$?

If you want to compare a string from within hometype.out, leave as is, but i doubt sed can limit the output todwards $m to true, as you compare.

hth
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Too many if statements..

Hello. I am new here and new to scripting. I used to have a very basic script that worked for simple backup/restore of files. I have expanded it and well... I have ended up with a complete mess. It still backs up and restores but there is so many issues that stem from the many if statements I... (3 Replies)
Discussion started by: gameinn
3 Replies

2. UNIX for Dummies Questions & Answers

if and then statements

I came across a bash script that outputs the forecast for the day and the max temperature but at the end of the day the max temperature disappears ($6) and I am left with "°C" after the forecast. Here is the script: #! /bin/bash curl -s --connect-timeout 30... (7 Replies)
Discussion started by: _light_
7 Replies

3. Shell Programming and Scripting

Using While and If statements

Hi guys, Two problems I need solving please. I created a script where the user types in 7 numbers as standard input and each one is then stored in an array. Now I need to perform the following calculations on those numbers: 1) Use a while loop to determine the largest number in the range. ... (2 Replies)
Discussion started by: jjb1989
2 Replies

4. Shell Programming and Scripting

vi and if statements

Hi I am very new to Unix programming and shell scripting. I am trying t figure out how to write a little script that will output the number of directories. I can find the number of directories using ls -l | grep "^d" | wc -l I can not figure out how to do it so when I type the name... (8 Replies)
Discussion started by: Reddoug
8 Replies

5. Shell Programming and Scripting

Help with IF statements

I am writing a script that does a search for a argument in a file and lists all like occurrences. The script verifies that it is a file and then runs another script that list the lines. My problem is that I need the script to accept a file or a directory and then go to that directory check all... (1 Reply)
Discussion started by: zero3ree
1 Replies

6. Shell Programming and Scripting

HELP!! if statements

I am kind of new in Unix and i have to make a menu. I want to put an if statement in the menu. you should enter the filename and it goes to that file. How do i do this? (1 Reply)
Discussion started by: trob
1 Replies

7. UNIX for Advanced & Expert Users

if statements

This is for a program I have to do to calculate the day of the week. I need to write an if statement that will do the following: if day is 29 and year is odd, don't calculate dayif ( day == 29 && year == ??? )I know how to do it for the day but I don't know how to do it for the year. (4 Replies)
Discussion started by: pwanda
4 Replies

8. Shell Programming and Scripting

Please help on IF statements.

I had different problem scenarios with IF statement. Can any expert please enlighten me on the difference with these scenarios. Thank you. 1st Scenario: testdate=`date +%Y%m` test=`cat /var/log/database0.$testdate*.log | grep "Errors found during processing" | tail -10` if then ... (4 Replies)
Discussion started by: filthymonk
4 Replies

9. UNIX for Dummies Questions & Answers

Else in If Statements

Sorry to be a pain, but how does the else work in the if statements? Ive been making scripts with if statements but i cant get the else statements working. Can you help? (8 Replies)
Discussion started by: chapmana
8 Replies

10. Shell Programming and Scripting

or statements?

how do i do an or in an if-then statement? i tried: if ; then bleh fi how???? (1 Reply)
Discussion started by: Blip
1 Replies
Login or Register to Ask a Question