If statement to compare two strings


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers If statement to compare two strings
# 1  
Old 06-19-2017
If statement to compare two strings

Hi,

I am trying to do the following to see if "ip" is already present in a file.

Code:
if ["$ip" == "(cat /etc/hosts.deny | grep {$ip})"]; then
		echo "hi"
	else
		 echo "hello"
	fi

I am seeing errors on the if statement. Can someone please correct the syntax for me? Thanks

Last edited by Scrutinizer; 06-19-2017 at 11:45 PM.. Reason: code tags
# 2  
Old 06-19-2017
Quote:
Originally Posted by waince
Hi,

I am trying to do the following to see if "ip" is already present in a file.

Code:
if ["$ip" == "(cat /etc/hosts.deny | grep {$ip})"]; then
		echo "hi"
	else
		 echo "hello"
	fi

I am seeing errors on the if statement. Can someone please correct the syntax for me? Thanks
Try the following:
Code:
if grep -q "$ip" /etc/hosts.deny; then
    echo "hi"
else
    echo "hello"
fi

or

Code:
grep -q "$ip" /etc/hosts.deny && echo "hi" || echo "hello"

---------- Post updated at 08:31 PM ---------- Previous update was at 08:14 PM ----------

By the way, the errors most likely are because it needs spaces between [ and ]
Nevertheless, you are saying something you do not intend to.

The value stored in the variable ip is equal to the literal string formed with the characters (cat /etc/hosts.deny | grep {[*]value in ip variable})
Very unlikely.

[*] the ip variable will be expanded and its content will show instead.
# 3  
Old 06-20-2017
A few comments on top of what Aia already said
- unless hosts.deny contains EXACTLY ONE line consisting only of that $ip contents, the test will fail
- you need to deploy "command substitution" $(...) (c.f. man bash)
- the test can be phrased way simpler and safer or even omitted (see Aia's proposal)
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. 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

3. 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

4. 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

5. 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

6. 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

7. 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

8. 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

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