If statement not working


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting If statement not working
# 1  
Old 12-12-2007
If statement not working

I understand this question probably poses some child like stupidity, but I can't get this if statement to work for love or money.

#!/bin/ksh
echo "Input either 1 or 2"
read Num
if [$Num -eq 1 ]; then
echo "Message 1"
if [$Num -eq 2 ]; then
echo "Message 2"
else
echo "false"
fi

$ ksh decisions
Input either 1 or 2
2
decisions[4]: syntax error at line 4 : `then' unmatched
# 2  
Old 12-12-2007
Yes, numerous problems!

Indenting helps expose the problems....

Code:
#!/bin/ksh

echo "Input either 1 or 2"
read Num

if [ $Num -eq 1 ]
then
        echo "Message 1"
else
        if [ $Num -eq 2 ]
        then
                echo "Message 2"
        else
                echo "false"
        fi
fi

# 3  
Old 12-12-2007
Still getting an error when running it:

$ ksh decisions
Input either 1 or 2
2
decisions[5]: [2: not found
decisions[9]: [2: not found
false
# 4  
Old 12-12-2007
That is because you missed the space between the [ and $ in the if statements.
# 5  
Old 12-12-2007
That's brilliant, thank you!
# 6  
Old 12-13-2007
I would also advice you to put double-quotes around all uses of $Num (ie. "$Num"), to ensure you have an empty string rather than a missing variable if the responder just presses Enter.
# 7  
Old 12-13-2007
Quote:
Originally Posted by prowla
I would also advice you to put double-quotes around all uses of $Num (ie. "$Num"), to ensure you have an empty string rather than a missing variable if the responder just presses Enter.
Either that or - IMHO even better - typeset the variable instead of taking it out of nowhere:

Code:
#! /bin/ksh

typeset -i Num=0

# ... rest of the code ...

bakunin
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Read statement not working

hello guys, i am having the below piece of code error () { echo"Press y /n" read ans case $ans in y) main;; n) exit esac } In the abve code, read statement is not working i.e not waiting for user to enter input. ,i tested exit status its 1. could anyone help me to do this ... (11 Replies)
Discussion started by: mohanalakshmi
11 Replies

2. Shell Programming and Scripting

Case statement not working as expected

case "$freq" in " Hz") low=250; high=550;; "8 Hz") low=250; high=1000;; " Hz") low=400; high=1000;; "63 Hz") low=550; high=1000;; " Hz") low=400; high=550;; ... (2 Replies)
Discussion started by: Michael Stora
2 Replies

3. Shell Programming and Scripting

If statement with [[ ]] and regex not working as expected

Using BASH: $ if -- ::00" ]]; then echo "true"; else echo "false"; fi false Mike (5 Replies)
Discussion started by: Michael Stora
5 Replies

4. Shell Programming and Scripting

If statement is not working in KSH

#! /bin/ksh rm -f ./xyz file --- this line is working // Below any if stmt is not working. if then echo " blah blah " fi or I replaced above if with if then echo "dir exists" fi This is also not working. I am new to KSH. So can someone help why if stmt is not... (31 Replies)
Discussion started by: saggy9583
31 Replies

5. Shell Programming and Scripting

Cshell if statement not working

Hi .I am trying to check the first arguments =-s and the third =-d,but it doesnt work ,any idea why It gives me if: Missing file name Thanks #case -s and files if( $1 == "-s" && $3 != "-d" ) then echo "case s" endif (1 Reply)
Discussion started by: lio123
1 Replies

6. Shell Programming and Scripting

If statement is not working.

Hi. With the help of this group I have created a shell script to find the factorial of a number. OK. Then I got wild.;) I tried to put in a check to make sure the entry is a number. read num If )) then echo "This is not a valid number. Try again." fi while (( $var <= $num)) more... (5 Replies)
Discussion started by: Ccccc
5 Replies

7. UNIX for Dummies Questions & Answers

if statement not working as desired

Hello all, I am trying to write a post-commit hook script using bash script. What I am trying to do here is: Developers check in their files to a branch. I check the repository and based on the commit I email QA people. QA verifies and moves the files to a prod branch and email is sent... (1 Reply)
Discussion started by: kminkeller
1 Replies

8. Shell Programming and Scripting

Read statement not working in a script

I have a script consisting of certain functions whose input is a file at same location. In that file i have written the name of anothe file at same location. The third file contains a word which act as a function in the first script.Let me give an example i have a scrip file say 1.sh in which i am... (7 Replies)
Discussion started by: sumitdua
7 Replies

9. UNIX for Dummies Questions & Answers

until statement not working

im trying to write an until statement which dont go onto the next stage until the user inputs a certain phrase. It is then stored in an array. Ive come up with this code so far but its not working and i dont know why. read in1 until do echo "Incorrect, try again" ... (2 Replies)
Discussion started by: strasner
2 Replies

10. Shell Programming and Scripting

find/if statement not working

Hi guys: I am trying to delete multiple files in a folder with different names. Below is the script that I was trying, but it doesn't work ************************** #!/bin/ksh DATE=`date '+20%y%m%d'` DEL_DIR=<dir where files have to be deleted> let DATE2=$(($DATE - 2)) let DATE1=$(($DATE... (12 Replies)
Discussion started by: geomonap
12 Replies
Login or Register to Ask a Question