Antwort
Hinter der eckigen Klammer [ verbirgt sich das Programm /usr/bin/[
Du musst ein Leerzeichen tippen, damit der Interpreter erkennt, dass es sich dort um den Aufruf eines Unix-Werkzeuges handelt. Das Programm [ entspricht dem Programm /usr/bin/test.
Wenn du ein POSIX-kompatibles Shell-Skript schreiben möchtest, vergleichst du korrekterweise wie folgt zwei Strings:
#!/bin/sh
a="A"
b="B"
if [ "$a" = "$b" ]; then
# do something
fi
Die doppelten Klammern [[ und ]] sind nicht durch POSIX standardisiert.
Tipp: Schreibe deine Logik in Funktionen und rufe am Ende eine Funktion (ähnlich zur bekannten main Funktion) auf, die die einzelnen Funktionen aufruft.