Web lists-archives.com

Re: bash string-operator problem




On 2/21/19, john doe wrote:
> On 2/21/2019 5:18 PM, Lee wrote:
>> On 2/21/19, Rockefeller, Harry  wrote:
>>> CYGWIN_NT-6.1 HARRYR-PC 3.0.0(0.336/5/3) 2019-02-16 13:21 x86_64 Cygwin
>>> GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)
>>>
>>> #!/bin/bash
>>> A="A"
>>> B="A"
>>> if [ $A!=$B ]; then          <----- needs spaces around the !=
>>>     echo -e "not identical"
>>> fi
>>> if [ $A==$B ]; then         <------ needs spaces around the ==
>>>     echo -e "identical"
>>> fi
  <.. snip ..>
>
> One equal sign ('=') should be used instead of two equal signs ('==').

The man page for test says you're correct, but just out of curiosity
-- why do two equal signs work?

$ cat /tmp/x
#!/bin/bash
A="A"
B="A"
if [ $A == $B ]; then
    echo  "identical"
fi
if [ $A = $B ]; then
    echo  "identical"
fi

$ bash /tmp/x
identical
identical

Thanks,
Lee

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple