error in if-else condition


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting error in if-else condition
# 1  
Old 06-09-2008
error in if-else condition

Hi..

Im using the following script to find whether the present day is monday or not. If it is monday it has to do a specific set of things.

#!/bin/sh
Present_Date=`date`
LOAD_DAY=`date -d "$Present_Date" | cut -d " " -f 1`
echo $LOAD_DAY
if [ $LOAD_DAY = "Mon" ];then
echo "Monday"
#statements;
else
echo "Not Monday"
#statements;
fi

I have saved this script as 'test'. When i run this script using the command 'sh.test' i always get the following o/p with an error.

$ sh test
Mon
test: line 9: syntax error near unexpected token `fi'
test: line 9: `fi'


Im running this script in Linux machine. Can anyone please advice why this error occurs?
# 2  
Old 06-09-2008
Quote:
Originally Posted by abala
$ sh test
Mon
test: line 9: syntax error near unexpected token `fi'
test: line 9: `fi'
I copy/pasted your script, and don't get the same result. Perhaps you have an incorrect quote or space somewhere which got lost in translation when you pasted the script here? (Running Ubuntu 8.04 / bash.)

For what it's worth, the duplicated date commands are redundant; you can simply omit the calculation of Present_Date and even the cut with date +%a (or if you actually want the full weekday name, date +%A)
# 3  
Old 06-09-2008
still error

Im still getting the error. Smilie

Following is the machine details where i run the script.

$ uname -a
Linux inafplxquas11 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 athlon i386 GNU/Linux

Is this error anything to do with the version of linux i am using?
# 4  
Old 06-09-2008
No, it's not related to the kernel. It could have to do with the version of your shell, but more likely it's something like an invisible or incorrect character in the input which you cannot easily copy/paste here.

If you copy+paste back what you posted above, do you still get the error?

If so, can you run it with sh -vx scriptname and post the result here?
# 5  
Old 06-09-2008
Hi ,

I copy+pasted the code which i had posted earlier. It dint work.
I tried 'sh -vx' . I have pasted the result below.

$ sh -vx test
#!/bin/bash
LOAD_DAY=`date +%a`
date +%a
++ date +%a
+ LOAD_DAY=$'Mon\r'
echo $LOAD_DAY
+ echo $'Mon\r\r'
Mon
if [ `date +%a` = "Mon" ];then
echo "Monday"
#statements;
else
echo "Not Monday"
#statements;
fi
test: line 10: syntax error near unexpected token `fi'
test: line 10: `fi'
# 6  
Old 06-09-2008
The problem here seems like the carriage return part as u r copy pasting the script.

Thanks
namish
# 7  
Old 06-09-2008
Just a W.A.G.:

Don't name the script test.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

If condition is not working and getting error

Hi Team, If condition is not working properly and getting below error # ./score1.sh Enter your score ('q' for quit): 102 Enter your score ('q' for quit): q ./score1.sh: line 9: q: integer expression expected Average is: 102%. Exit. Actual code # Calculate the average of given... (3 Replies)
Discussion started by: Torrid
3 Replies

2. Shell Programming and Scripting

If condition giving syntax error. Need help.

Hi, I have an if condition on executing it is giving syntax error as below: -------------------------------------------------------------------------------------- line 61: syntax error in conditional expression ./play_test.sh: line 61: syntax error near `]' ./play_test.sh: line 61: ` if... (2 Replies)
Discussion started by: ramki067
2 Replies

3. Shell Programming and Scripting

Handling standard error in condition

Testing this with KSH on RHEL The bellow code works but i can't seem to handle the exit status of the unix command when it fails... i wanted to put something like >/dev/null 2>&1 to manage standard output and standard error but it changes my logic and the code doesn't work cause it doesn't... (11 Replies)
Discussion started by: maverick72
11 Replies

4. Shell Programming and Scripting

Error: if condition

please follow below code if ; then its giving me an error as "test1.sh: line 3: r=$(eval echo '$lck_'$TABLE != "") if can anyone tell me how to do inside if condition...with out use any variable.. TIA (6 Replies)
Discussion started by: gnnsprapa
6 Replies

5. UNIX for Dummies Questions & Answers

error in if condition

Hi All, I need to compare the header of the input files which can be comma demilited, tild(~) or Pipr(|) seperated file. I am comparing the file header by taking 1st row and comparing it with input row: Below is the actual code:(ksh script) if then echo $dat >>... (4 Replies)
Discussion started by: abhi_123
4 Replies

6. Shell Programming and Scripting

while condition error:

I'm trying to run following code: while do echo "Hello World" done but I'm getting error on first line: ./test: line 1: syntax error near unexpected token `(' can anyone please tell me who can i run this loop. Also please tell me what will be syntax of do while loop in case i... (11 Replies)
Discussion started by: kashif.live
11 Replies

7. Shell Programming and Scripting

Condition error!

Hi Guys, Can you please help me to check if my condition is correct. if && then if ; then # active SE_USERID_LUZON_5="A" elif ; then # not active SE_USERID_LUZON_5="D" ${ECHO_CMD}... (3 Replies)
Discussion started by: nikki1200
3 Replies

8. Shell Programming and Scripting

Error in if condition string comparison

Hello all! I need help in debugging following script. I have no idea where I am going wrong. #!/bin/bash for p1 in A1 TM MP do for p2 in A1 TM MP do for mp1 in N1 N2 do for mp2 in N1 N2 do for mp3 in N1 N2 do for mp4 in N1 N2 do for... (7 Replies)
Discussion started by: RLOA
7 Replies

9. Shell Programming and Scripting

If condition error-please debug my script

Hi All, I have a script which is based on calculating current time The script looks like this: whenever i try to run the script it gives me error:Please advice wherther i have made mistake with if condition or with for loop?? The code : set -x #!/usr/bin/ksh set -x... (7 Replies)
Discussion started by: usha rao
7 Replies

10. Shell Programming and Scripting

When running if condition, getting the following error

Hi All, My input file name is 1.sh the contents of file are cat status2.txt | while read filename do echo "$filename" echo "first content of the file is ${filename}" echo "second content of the file is ${filename}" echo "second content of the file is ${filename}" if } -eq 0 -a... (1 Reply)
Discussion started by: sunitachoudhury
1 Replies
Login or Register to Ask a Question