Looking for command to compare two strings

Steven W. Orr steveo at syslang.net
Sun Dec 3 18:33:23 UTC 2006


On Saturday, Dec 2nd 2006 at 14:31 -0000, quoth Paul Smith:

=>On 12/2/06, Andy Green <andy at warmcat.com> wrote:
=>> > Is there some command to automatically check whether the two following
=>> > strings are equal?
=>> >
=>> > e64829764ecc434be937d92ab3a00f57
=>> > e64829764ecc434bg937d92ab3a00f57
=>> 
=>> [b]ash can do it easily enough, eg save this as say isequal
=>> 
=>> #!/bin/sh
=>> 
=>> if [ "$1" = "$2" ] ; then echo "same" ; else echo "different" ; fi
=>> 
=>> 
=>> make sure you
=>> 
=>> chmod +x isequal
=>> 
=>> then you can go, eg
=>> 
=>> ./isequal e64829764ecc434be937d92ab3a00f57 e64829764ecc434bg937d92ab3a00f57
=>> 
=>> You can use the guts of the script from the commandline, even better
=>> 
=>> if [ "`md5sum $1`" = "`md5sum $2`" ] ; then echo "same" ; else echo
=>> "different" ; fi
=>
=>Thanks, Andy. Is not there a native Linux command to compare strings?

Hmm. The natives are restless tonight...

Ok. Let's see if we have something betterer...

function streq ()
{
    if (( $# != 2 ))
    then
        echo 'Wrong nr of args' 1>&1
        return 2
    fi
    [[ "$1" = "$2" ]]
}

Put this if your .bashrc to define the streq function. Then to invoke just 
say

streq horsepoopies liberals

The result will be in $?. O means equal, 1 means not equal, 2 means wrong 
nr of args.




More information about the fedora-list mailing list