Warum wird die folgende IF-Bedingung in ksh immer als wahr ausgewertet?

Beachten Sie, dass der folgende Code wie erwartet funktioniert:

if [[ $SOME_VARIABLE = "TRUE" ]]; then
   echo "Only echoed when \$SOME_VARIABLE stores string \"TRUE\"."
fi

Wenn ich aber das Leerzeichen um den Gleichheitsoperator entferne, wird immer der Exit-Status 0 ausgewertet (Zumindest gehe ich davon aus, dass er zurückgegeben werden muss, da er als wahr angenommen wird):

if [[ $SOME_VARIABLE="TRUE" ]]; then
   echo "Always true."
fi

AKTUALISIEREN:

Nur um zu bestätigen, ob das Problem beim Gleichstellungsoperator liegt oder nicht:

#!usr/bin/ksh

SOME_VARIABLE=FALSE

if [[ $SOME_VARIABLE == "TRUE" ]]; then
   echo "Only echoed when \$SOME_VARIABLE stores string \"TRUE\"."
fi


if [[ $SOME_VARIABLE=="TRUE" ]]; then
   echo "Always true."
fi


[kent@TEST]$ sh test.sh
Always true.

AKTUALISIEREN:

Zusammenfassung:

Verwenden= ist das gleiche wie== oben, ist aber veraltet.Achten Sie immer auf Ihre Räume.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage