Compare strings with space in if statement


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Compare strings with space in if statement
# 1  
Old 12-23-2013
Compare strings with space in if statement

Code:
DEV> vi test_if_statement.sh 
"test_if_statement.sh" [Incomplete last line] 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 [ $proc_out = "Normal completion" ] then
echo 'match'
else
echo 'no_match'
fi
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:q!
->DEV> test_if_statement.sh 
proc_out:Normal completion
proc_out_comp:Normal completion
./test_if_statement.sh: line 7: syntax error near unexpected token `else'
./test_if_statement.sh: line 7: `else'
->DEV>

Any idea how to get 'match in the result?
# 2  
Old 12-23-2013
Hi,
You must protect your variable with "...".
So, replace:
if [ $proc_out = "Normal completion" ]
by
if [ "$proc_out" = "Normal completion" ]

And add a newline in last line (you should check if your file is not a "dos file")

EDIT: I didn't saw semi-colon missing !!! Smilie
Regards.

Last edited by disedorgue; 12-23-2013 at 04:27 PM..
This User Gave Thanks to disedorgue For This Post:
# 3  
Old 12-23-2013
Assuming your test is how you want it, note the red semi-colon.
EDIT: Take note of disedorgue's comments for your test proceedure.
Code:
if [ $proc_out = "Normal completion" ]; then
        echo 'match'
else
        echo 'no_match'
fi

OR
Code:
if [ $proc_out = "Normal completion" ]
then
        echo 'match'
else
        echo 'no_match'
fi


Last edited by wisecracker; 12-23-2013 at 03:52 PM.. Reason: See above...
This User Gave Thanks to wisecracker For This Post:
# 4  
Old 12-23-2013
There needs to be a ; or a <new line> char in front of the "then".
This User Gave Thanks to RudiC For This Post:
# 5  
Old 12-23-2013
moving "then" to next line and enclosing the variable within double quotes did the trick.

Thank you all. This was very helpful
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. UNIX for Advanced & Expert Users

Need to remove leading space from awk statement space from calculation

I created a awk state to calculate the number of success however when the query runs it has a leading zero. Any ideas on how to remove the leading zero from the calculation? Here is my query: cat myfile.log | grep | awk '{print $2,$3,$7,$11,$15,$19,$23,$27,$31,$35($19/$15*100)}' 02:00:00... (1 Reply)
Discussion started by: bizomb
1 Replies

5. Shell Programming and Scripting

Compare two strings

hi.. i have a problem to compare two string my code is like that if ] then echo "both data are correct" elif ] echo "data is wrong" fi here $username1 is taking value from file.. (7 Replies)
Discussion started by: shubhig15
7 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

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

8. Shell Programming and Scripting

use strings in case statement options

I iterate in string list well but when I try to add a case statement in order to wrap the string value in a more accurate message I faced different problems. #Code starts ST_CODES="CN CU BU CQ LE" for ST_CODE in $ST_CODES do #echo $ST_CODE CODE="$ST_CODE""\n" ... (3 Replies)
Discussion started by: fdiaza
3 Replies

9. UNIX for Dummies Questions & Answers

Regex in if-then-else statement to match strings

hello I want to do a pattern match for string in the if statement, but I am not sure how to use regex inside the if statement. I am looking for something like this: if {2,3} ]; then ..... .... ... fi (7 Replies)
Discussion started by: rakeshou
7 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