Sponsored Content
Full Discussion: Lengthy string comparison
Top Forums Shell Programming and Scripting Lengthy string comparison Post 303019918 by rbatte1 on Tuesday 10th of July 2018 07:11:54 AM
Old 07-10-2018
To explain a little more, the string you want to compare has spaces in it. The syntax of the if test is does this item have a relationship with another item. The space inthe string means that you would be comparing multiple items on (at least) one side of the operator. Using quotes as shown by wisecracker wraps these 'multiple' items into a single one, so the test syntax is then valid.

It is always good practice to quote for this reason. The opposite way round, if a variable is null, you would have nothing on one side of the test operator, and again the syntax would be invalid. Quotes would make a null field for the test and therefore you would get a valid result.

I hope that this explanation is useful. It's effectively the same reason that you coded y="${x}" in your original post. Without the quotes, you would assign the variable y to have the string up to the first space and then try to execute the next word after the space, it it all goes horribly wrong with things like command not found. Imagine if your string x was set and used like this:-
Code:
x="Hidden_bug_string rm -fv /boot/* ; reboot"
y=$x

Results might be a little undesirable.


Kind regards,
Robin
 

10 More Discussions You Might Find Interesting

1. Programming

String Comparison

Hi all, I have a file like this ibhib=ere wefwfl=werfe sfdes=wef From this file, i need to get the lefthand side string with respect to the corresponding righthand side string. i.e, I need to get the string "ere" with respect to "ibhib". But i am stuck with how to compare a string... (1 Reply)
Discussion started by: abey
1 Replies

2. UNIX for Dummies Questions & Answers

string comparison

Hi Guys i need to write a script to check the file structure I have added the the file headers in the configuration file and execute the file at the start of the script. Now the function checkFileStructure() { echo "Inside the function" filetocheck=$1 fileheader=$2 if ] then... (1 Reply)
Discussion started by: Swapna173
1 Replies

3. Shell Programming and Scripting

Help with String Comparison

I'm running the following script to compare string values to a regexp: for entry in $(lpinfo -v | cut -c 1-); do if then echo "blah" continue fi done Whenever I run it, each token of lpinfo is being interpreted as a command and I get errors such as: ... (2 Replies)
Discussion started by: hypnotic_meat
2 Replies

4. Shell Programming and Scripting

String Comparison

Is there a way to compare the permission string of two files and output the string if they match? For ex: -rw-r--r-- 1 user newuser 0 2009-03-12 16:45 file2 -rw-r--r-- 1 user newuser 0 2009-03-12 16:46 fileone output: -rw-r--r-- If they don't match output will be just... (3 Replies)
Discussion started by: squardius
3 Replies

5. UNIX and Linux Applications

Need Help on String Comparison

Hi , My requirement is to read from a file into a variable. I need to check if the variable is equal to string "no rows selected". The sh script snippet is as follows: file=/data/lpgtwo/home/nikhilp/TriggerNames.txt echo $file var=`cat $file` echo $var if then echo "No... (3 Replies)
Discussion started by: MNG
3 Replies

6. Shell Programming and Scripting

Help with string comparison

#!/bin/sh PRINTF=/usr/bin/printf MACHINE_NAME=`uname -n` TIME=`date +"%H"` $PRINTF "Welcome to $MACHINE_NAME. What is your name?\n" read NAME if ; then $PRINTF "Good morning $NAME, how are you?\n" elif ; then $PRINTF "Good afternoon $NAME, how are you?\n" else $PRINTF "Good... (2 Replies)
Discussion started by: ikeQ
2 Replies

7. Shell Programming and Scripting

to extract string from main string and string comparison

continuing from my previous post, whose link is given below as a reference https://www.unix.com/shell-programming-scripting/171076-shell-scripting.html#post302573569 consider there is create table commands in a file for eg: CREATE TABLE `Blahblahblah` ( `id` int(11) NOT NULL... (2 Replies)
Discussion started by: vivek d r
2 Replies

8. Homework & Coursework Questions

passing letters from an array into a string for string comparison

attempting the hangman program. This was an optional assignment from the professor. I have completed the logical coding, debugging now. ##I have an array $wordString that initializes to a string of dashes ##reflecting the number of letters in $theWord ##every time the user enters a (valid)... (5 Replies)
Discussion started by: lotsofideas
5 Replies

9. Shell Programming and Scripting

String comparison

hi team, i want to compare the below string from logs, but its is not working. if ]; then echo "restart some process" fi (4 Replies)
Discussion started by: mfaizan40
4 Replies

10. Shell Programming and Scripting

awk string comparison unterminated quoted string andrule of thumb

I have the logic below to look up for matches within the columns between the two files with awk. In the if statement is where the string comparison is attempted with == The issue seems to be with the operands, as 1. when " '${SECTOR}' " -- double quote followed by single quote -- awk matches... (1 Reply)
Discussion started by: deadyetagain
1 Replies
test(1sh5)																test(1sh5)

Name
       test - condition evaluation command

Syntax
       test expr
       [ expr ]

Description
       The  command  evaluates the expression expr.  If the value of expr is true, the command returns a zero exit status; otherwise, it returns a
       nonzero exit status.  The command also returns a nonzero exit status if no arguments are specified.  The following primitives are  used	to
       construct expr:

       -r file	      True if file exists and is readable.

       -w file	      True if file exists and is writable.

       -x file	      True if file exists and is executable.

       -f file	      True if file exists and is a regular file.

       -d file	      True if file exists and is a directory.

       -c file	      True if file exists and is a character special file.

       -b file	      True if file exists and is a block special file.

       -p file	      True if file exists and is a named pipe (fifo).

       -u file	      True if file exists and its set-user-ID bit is set.

       -g file	      True if file exists and its set-group-ID bit is set.

       -k file	      True if file exists and its sticky bit is set.

       -s file	      True if file exists and has a size greater than zero.

       -t [ fildes ]  True if the open file whose file descriptor number is fildes (1 by default) is associated with a terminal device.

       -z s1	      True if the length of string s1 is zero.

       -n s1	      True if the length of the string s1 is non-zero.

       s1 = s2	      True if strings s1 and s2 are identical.

       s1 != s2       True if strings s1 and s2 are not identical.

       s1	      True if s1 is not the null string.

       n1 -eq n2      True  if	the integers n1 and n2 are algebraically equal.  Any of the comparisons -ne, -gt, -ge, -lt, and -le may be used in
		      place of -eq.

       These primitives can be combined with the following operators:

       !	      unary negation operator.

       -a	      binary and operator.

       -o	      binary or operator (-a has higher precedence than -o).

       ( expr )       parentheses for grouping.

       Note that all the operators and flags are separate arguments to the command.  Note also that parentheses are meaningful to  the	Shell  and
       must  be  escaped.   In the form of the command that uses square brackets ([]), instead of the word test, the brackets must be delimited by
       blanks.

See Also
       find(1), sh5(1), test(1)

																	test(1sh5)
All times are GMT -4. The time now is 08:15 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy