Visit Our UNIX and Linux User Community


if...elif...fi condition in Unix


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers if...elif...fi condition in Unix
# 1  
Old 09-02-2002
if...elif...fi condition in Unix

Hey guyes!

i have a little problem in if condition, can anybody please solve my problem?

Here what i am doing.
Code:
if [ $int1 = $int2 ]
then
       echo "int1 is equal to int2"
elif [ $int1 > $int2 ]
then
       echo "int1 is greater than int2"
else
     echo "int1 is smaller than int2"
fi

No, matter int1 is smaller than int2 it says int1 is greater than int2, even thoug i put small value for int1.

it did not go to last "else" part (int1 is smaller than int2) why ?
am i doing something wrong ? please help me.

thanks
Abid Malik

added code tags for readability --oombera

Last edited by oombera; 02-19-2004 at 05:26 PM..
# 2  
Old 09-03-2002
You should use the 'gt' function...(greater than)...or 'lt' less than.

elif [ $int1 -gt $int2 ]
then echo "int one is greater than..........
# 3  
Old 09-03-2002
Just for reference:

is equal to: eq
is not equal to: ne
is greater than: gt
is less than: lt
is greater than or equal to: ge
is less than or equal to: le
# 4  
Old 09-03-2002
I belive that = is usually only used for assigning a value to a variable in most programming languages.

Oombera is right for shell programming. You might need a - in front of those options like -eq, -ne, -gt, etc... .


BTW, the "test" structure that you are using can be used without the "if", if you are not using the if/elif/if/else structure. You can use the [ ] test statement by itself with the else statement. I might be wrong, I haven't used that in a long time. A bit fuzzy on the syntax.

test [ ]
<somecommand>...



My brain is your Brain...
Smilie
# 5  
Old 09-03-2002
In most languages, using the = sign in a test statement will simply test whether some number is able to be stored in the variable... resulting in an answer of TRUE and the variable being changed.

Also, I haven't seen "test" be used all by itself. I have seen it be used like:

if test intA -eq intB; then ...

but the brackets are shorter:

if [ intA -eq intB ]; then ...
# 6  
Old 09-03-2002
In the man page it shows an example. But you are correct that test statement is usually used with another structure.

It is usually used in conjuction with some type of conditional statement like while, for, if, until, etc...



while test -r <myfile> # if the file exists
do
somecommand
done

OR

[ ! -f thisfile ] && echo default > thisfile



My brain is your brain....

Smilie
# 7  
Old 09-03-2002
What shell is this?
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #527
Difficulty: Medium
ASCII was originally developed in the early 1940s.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Issue with condition "if then elif else fi"

Hi everybody, I must get trought a shell script 3 arguments. 1st argument = $1 (can take values REP1..4) 2nd argument = $2 (can take values A..Z) 3rd arguement = $3 (also can take values A...Z) I've written this code : #!/bin/bash if then liste=/data/folder1 echo... (6 Replies)
Discussion started by: shellX
6 Replies

2. UNIX for Advanced & Expert Users

How to create folder by using if and elif condition?

Hi All, I have already code to create folder for one country let say US , now we want to create folder/directory for JP country also using shell script , application server. $COUNTRY='US' if ] then if mkdir -m 777 -p /opt/TEST/$COUNTRY/$INVOICE >/dev/null 2>&1 | tee -a ... (5 Replies)
Discussion started by: Boost
5 Replies

3. Shell Programming and Scripting

If Condition Issue in UNIX

Hi I am trying to do a "IF" Condition in UNIX where we compare EACH file size in a directory with a SIZE (Parameter passed) If Each File size EXCEEDS parameter passed SIZE then we manipulate the file. Somehow the IF condition do not work ?? (is this Variable decalration issue ??) ... (9 Replies)
Discussion started by: Pete.kriya
9 Replies

4. Shell Programming and Scripting

Checking for null condition in a UNIX variable

i have this code for i in `cat sql_output.txt` do -- some script commands done sql_output.txt has 1 column with employee_ids If the sql_output.txt is null then the do loop should not execute. How can i implement this. for i in `cat sql_output.txt` If i is null or empty then ... (5 Replies)
Discussion started by: rafa_fed2
5 Replies

5. Shell Programming and Scripting

Condition checking in UNIX

i have a script where i have to find the age of a file, if then echo "dnb file is present for the monthly load" >> $RUNLOG dnb="1" else echo "dnb file has not arrived yet" > $ERRLOG dnb="0" fi i know the file is available so... (3 Replies)
Discussion started by: lovelysethii
3 Replies

6. Shell Programming and Scripting

how to use split command in unix shell with a condition

Hi all, I have a file which I want to split into several files based on a condition. This files has several records. I want one record per file. Each record ends with a //. So, I want to separate files based on this condition. I want split files to be named with the name across the field ID (for... (2 Replies)
Discussion started by: kaav06
2 Replies

7. Shell Programming and Scripting

if condition to check the hostname (unix)

I want to know the if condition in checking the hostname in unix and then running a cron job (all in a single line) Thanks (2 Replies)
Discussion started by: prash358
2 Replies

8. Shell Programming and Scripting

Unix and db2 where condition issue(new line)

Hi I am extracting a column value(DESCRIPTION) from one table and passing it to another db2 statement in a shell code to fetch some value(ID) but the value when passed in where condition is taking as newline+value. Please find the out put when executed: + echo description is ::::... (1 Reply)
Discussion started by: msp2244
1 Replies

9. Shell Programming and Scripting

If..elif..else...fi

Hi all, I got some problems on executing the following scripts. Scripts: if ]; then echo "M${str}O 0 1" >> ${tempFile} elif ]; then echo "M${str}O 1 0" >> ${tempFile} else echo "M${str}O 0 0" >> ${tempFile} fi Error: "`;' is not expected." what's the problem? (2 Replies)
Discussion started by: Rock
2 Replies

10. Shell Programming and Scripting

If and Or Condition in Unix [ksh]

I have the code below. I want to said If TrackErrors > 0 or count == 0 then MailErrors else MailSuccess fi. if then MailErrors ${count} else MailSuccess ${count} fi Any helps greatly appreciated. (2 Replies)
Discussion started by: leemjesse
2 Replies

Featured Tech Videos