difference between == and =


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers difference between == and =
# 1  
Old 05-20-2006
difference between == and =

This is probably a stupid question to ask. But could somebody help me clearly distinguish the difference between these two operators in unix '==' and '='?
# 2  
Old 05-20-2006
In unix what?
# 3  
Old 05-20-2006
may be i was not clear

excuse me if i did not clearly stated the prob. Consider this piece of code:

if( $3 == "R001" )
print "xxx";
else
print "yyy";
fi

my question is why can't I use the following instead of above:

if [[ $3 = "R001" ]]
print "xxx"
else
print "yyy"
fi

Also, is there is a difference in () and [[ ]] in above two examples?

Thanks
# 4  
Old 05-20-2006
UNIX is an operating system, not a commandline. You seem to be talking about the standard UNIX shell, sh or one of it's clones like bash, but could have as easily been using something like korn... or even been programming in C.... = and == are pretty common.

I've never seen code like your first example, probably because it doesn't work. ( ) brackets aren't statement grouping, they define arrays!
Code:
arr=(a = c)
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}

will print a, then =, then c. The = isn't even treated as an operator inside the ().

Inside the [[ ]] brackets, == is a pattern matching operator for strings, and = is a straight equality comparison. Outside of there, = is an assignment operator like variable="something" and I don't think == does anything.

Also, your if statements aren't quite right. Try this:

Code:
if [[ $this = "that" ]]
then
      echo "Something"
else
      echo "Something else"
fi


Last edited by Corona688; 05-20-2006 at 03:47 AM..
# 5  
Old 05-20-2006
It appears that the difference is that one command is in a sh based shell and the other a csh based shell.
# 6  
Old 05-20-2006
Question got some lead

Thanks both of you, for your replies. The examples that I cited were from ksh actually. I did come across some places and found out that == is equality operator used in arirthmatic operations (e.g. to compare two strings) whereas = is simply an assignment operator.

I guess I am still a little bit confused as far as the different brackets are concerned i.e. is my understand correct per following:

1. (commands...) - open a subshell and execute commands in that subshell ??
2. ((commands...)) - i have no idea about this one.

As far as [ $var1 -eq 0 ] and [[ $var1 -eq 0 ]] type of brackets are concerned, i guess they are equivalent and are used to test whether var1 is set to 0.

Thanks once again
Vikas
# 7  
Old 05-20-2006
[[ ]] must be used when there are multiple tests:
Code:
if [[ "$a" = "one"  && "$b" = "two ]]; then
    do something
fi

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk to calculate difference of split and sum the difference

In the awk I am trying to subtract the difference $3-$2 of each matching $4 before the first _ (underscore) and print that value in $13. I think the awk will do that, but added comments. What I am not sure off is how to add a line or lines that will add sum each matching $13 value and put it in... (2 Replies)
Discussion started by: cmccabe
2 Replies

2. Shell Programming and Scripting

Get difference

Hi .. I am trying to create one function. It will have two arguments. Argument1: a,b,d,f,g Argument2:21212,sfsd,4546,67867,a,asda,b So the output will be Argument1 - Argument2 which is d,f,g Can anyone help with this one? (4 Replies)
Discussion started by: Anupam_Halder
4 Replies

3. Programming

what is the main difference between difference between using nonatomic lseek and O_APPEND

I think both write at the end of the file ...... but is there a sharp difference between those 2 instruction ..... thank you this is my 3rd question today forgive me :D (1 Reply)
Discussion started by: fwrlfo
1 Replies

4. UNIX for Dummies Questions & Answers

Difference between sh and ./

Hi All Can any body please tell me what is difference between sh scr ./scr Here scr is a script. (1 Reply)
Discussion started by: parthmittal2007
1 Replies

5. UNIX for Dummies Questions & Answers

Difference between

$x=10 and providing the spaces between = and 10 $x= 10 (4 Replies)
Discussion started by: shashank1311
4 Replies

6. Shell Programming and Scripting

Difference between 1,$ and /g

just wondering what the difference is between 1,$ and /g when doing a substitution in vi. doesn't seem to be much difference from what i can see. (2 Replies)
Discussion started by: bigubosu
2 Replies

7. UNIX for Advanced & Expert Users

difference

difference b/w shell scripting and perl scripting (2 Replies)
Discussion started by: simmijaswal
2 Replies

8. Shell Programming and Scripting

Difference between $* and $@

Somebody please tell me the difference between $@ and $* Thanks in advance. Saneesh Joseph (1 Reply)
Discussion started by: saneeshjose
1 Replies

9. Linux

what is the difference between -h and -H ?

samba:/home/backup # df -h /home/ Filesystem Size Used Avail Use% Mounted on /dev/sdb2 34G 8.6G 26G 26% /home samba:/home/backup # df -H /home/ Filesystem Size Used Avail Use% Mounted on /dev/sdb2 37GB 9.2GB 28GB 26% /home what... (2 Replies)
Discussion started by: cw1972
2 Replies

10. UNIX for Dummies Questions & Answers

Where is the difference?

Hello I would like to know where there is a difference between these two machines? HP9000-735/125 HP9000-B132L What does that all mean? Okay, HP= Hewlett Packard But 9000, 725/125, B132L ???? I am asking that question because I am about to buy one for myself, so I can have some fun... (3 Replies)
Discussion started by: Fwurm
3 Replies
Login or Register to Ask a Question