Wenn Sie in Bash (und ksh und zsh) doppelte eckige Klammern verwenden, müssen Sie Variablen nicht in Anführungszeichen setzen, um sie davor zu schützen, null oder nicht gesetzt zu werden.
$ if [ $xyzzy == "x" ]; then echo "True"; else echo "False"; fi
-bash: [: ==: unary operator expected
False
$ if [[ $xyzzy == "x" ]]; then echo "True"; else echo "False"; fi
False
Es gibt noch weitere Vorteile.
Schließen Sie die Variable in doppelte Anführungszeichen ein.
if [ "$TESTVAR" == "foo" ]
Wenn Sie das tun und die Variable leer ist, erweitert sich der Test zu:
if [ "" == "foo" ]
wohingegen, wenn Sie es nicht zitieren, es erweitert wird zu:
if [ == "foo" ]
das ist ein Syntaxfehler.