Compare two strings


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare two strings
# 1  
Old 10-27-2010
Compare two strings

hi..
i have a problem to compare two string
my code is like that
Code:
if [[ ($1 = $username1 &&  $2 = $password1)  ||  ($1 = $username2 &&  $2 = $password2) ]]
then
echo "both data are correct"
elif [[ ($1 = $username1 &&  $2 != $password1)  ||  ($1 = $username2 &&  $2 != $password2) ]]  
echo "data is wrong"
fi

here $username1 is taking value from file..
# 2  
Old 10-27-2010
Don't recognise the syntax. What Shell are you using?
# 3  
Old 10-27-2010
I think that should be:
Code:
if [[ ($1 = $username1 &&  $2 = $password1)  ||  ($1 = $username2 &&  $2 = $password2) ]]
then
  echo "both data are correct"
else
  echo "data is wrong"
fi

IMO the elif statement is superfluous and only tests for a subset of what would be incorrect input.
# 4  
Old 10-27-2010
Assuming this is somthing like bash or ksh, it is much easier to follow with a "test" statement than a "conditional expression".


Code:
if [ "${1}" = "${username1}" -a "${2}" = "${password1}" -a "${1}" = "${username2}" -a "${2}" = "${password2}" ]
then
        echo "both data are correct"
else
        echo "data is wrong"
fi

# 5  
Old 10-27-2010
A small typo: the middle -a should be a -o.

Perhaps a matter of taste, but I for one do not agree that this is easier to follow, I think the && and || and () syntax is clearer. Also, -a and -o are deprecated. See here
# 6  
Old 10-27-2010
Quote:
A small typo: the middle -a should be a -o.
No typo. The boolean is all "and".

Strangely I've also read that the Conditional Expression [[ ... ]] is being depreciated. Depends on which set of proposed standards you read this week.
Personally I use the Conditional Expression syntax in a cron line and the "test" syntax in Shell scripts.
In the real world for this particular post I'd probably have used nested "if" statements preceded by useful comment lines.
# 7  
Old 10-27-2010
It seems to me the OP 's "both data are correct" is referring to $1 and $2. And then there should be an or in the middle IMO, no? Do you happen to have a source for your assertion that the conditional expression is being deprecated in bash/ksh?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Ubuntu

Compare 2 strings

I think there is a way to detect mouse movement. valuator changes if the mouse moves. So I need to compare the two strings. Not sure how to do that. How could I send the valuator string to a file ? I would need to do it twice. andy@7_~/Downloads$ xinput query-state 9 2 classes :... (7 Replies)
Discussion started by: drew77
7 Replies

2. UNIX for Beginners Questions & Answers

If statement to compare two strings

Hi, I am trying to do the following to see if "ip" is already present in a file. if ; then echo "hi" else echo "hello" fi I am seeing errors on the if statement. Can someone please correct the syntax for me? Thanks (2 Replies)
Discussion started by: waince
2 Replies

3. Shell Programming and Scripting

Compare 2 Strings

I have 2 values V_1_4_4_b1 and V_1_5_1_RC_b1. I would need to compare them and determine if the 1st value is greater, less or equal than the 2nd value. The result should need to have a return value. I have below code in bash function but it seems it is not comparing it correctly. Any help will... (8 Replies)
Discussion started by: aderamos12
8 Replies

4. Shell Programming and Scripting

Compare strings with space in if statement

DEV> vi test_if_statement.sh "test_if_statement.sh" 9 lines, 205 characters proc_out="Normal completion" proc_out_comp="Normal completion" echo 'proc_out:'$proc_out echo 'proc_out_comp:'$proc_out_comp if then echo 'match' else echo 'no_match' fi ~ ~ ~ ~ ~ ~ ~ ~ ~ (4 Replies)
Discussion started by: cartrider
4 Replies

5. Shell Programming and Scripting

How to compare two strings in a file

hello guyzz please help me out.. I have two file a.sh and b.sh it contains two string SD109 ,SD108 . I want to compaere these two string . If a.sh>b.sh do rebasing record time. else it shows no rebasing required. Thanks. (2 Replies)
Discussion started by: abhijtr
2 Replies

6. Shell Programming and Scripting

How to Compare 2 Strings ?

Hello , I want to Compare with 2 strings and get if they are True or not please would like some help on this #!bin/ksh echo "Enter Name 1" read Name1 echo "Enter Name 2" read Name2 echo "------------------------" echo "First Name: $Name1" echo "Second Name: $Name2" echo... (25 Replies)
Discussion started by: shatztal
25 Replies

7. Shell Programming and Scripting

Compare text strings.

Hi Im trying to write a script that compare a text string. But it fails, I think it adds a extra line feed to the result and fails beacuse of that. The script. DT=`date +'%Y%m%d%H%M%S'` #ALARM_BIN=/users/alarms/ssa/alarms/bin QUEUE_THR=10 #unset offset #offset="***Server reports data... (3 Replies)
Discussion started by: vettec3
3 Replies

8. Shell Programming and Scripting

How to compare two strings using if

Hi, Here is my script #!/bin/ksh echo $pick_typ if ];then echo "inside if" else echo "outside if" fi when ever i pass CUS as parameter to this script am getting the correct value CUS, however if i pass ORD as parameter it is not coming inside if it is echoing else "Outside... (12 Replies)
Discussion started by: bhargav20
12 Replies

9. Shell Programming and Scripting

How to compare two strings

Hi all, I am trying to compare two strings/dates, but its throwing error::Syntax error at line 5: Please help !! Any alternate way to compare two dates is also fine.... logdate1=`date -u '+%Y.%m.%d %T'` sleep 5 logdate2=`date -u '+%Y.%m.%d %T'` if test... (5 Replies)
Discussion started by: prashant43
5 Replies

10. Shell Programming and Scripting

to compare two strings

hi all, i am new to unix. Actually i need to compare two string and print the result... suppose type='sun' if; then echo good morning else echo good night fi whether the comparison is right r we need to use eq???? help me please.... :confused: thanks in advance.... (1 Reply)
Discussion started by: ithirak17
1 Replies
Login or Register to Ask a Question