Warum gleich-operator funktioniert nicht, wenn es ist nicht umgeben von Raum?

Habe ich versucht, das folgende Skript

#!/bin/bash
var1="Test 1" 
var2="Test 2"
if [ "$var1"="$var2" ] 
  then 
    echo "Equal" 
  else 
    echo "Not equal"
fi

Er gab mir Equal. Obwohl es ausgedruckt haben Not equal

Nur, wenn ich eingefügt Platz um = es funktionierte wie vorgesehen

if [ "$var1" = "$var2" ] 

und gedruckt Not equal

Warum ist es so? Warum "$var1"="$var2" ist nicht dasselbe wie "$var1" = "$var2"?

Darüber hinaus, als ich schrieb if [ "$var1"= "$var2" ] es gab

line 4: [: Test 1=: unary operator expected

Was hat es zu bedeuten? Wie kommt Ihr erwarten unärer operator?

Schreibe einen Kommentar