Bash Script Array und if Problem

Hier ein paar kleine Kniffe in Bezug auf Bash Scripte:

Um einen Array mit Werten anzulegen und diese Werte zu durchlaufen:

#!/bin/bash

TESTARRAY=(hallo welt dies ist ein Array Test)
for i in ${TESTARRAY[@]}
do
  echo $i
done

Diese Ausgabe erzeugt eine zeilenweise Ausgabe der einzelnen Strings im Array.

Als zweites noch ein kleines Kniff bei if-Abfragen in Bash Scripten.
Ein häufig auftretendes Problem, ist ein nicht betreten des Code Teils nach einer if Abfrage:

SELECT=`date '+%w'`
if [["$SELECT" -eq 3]];
then
echo "hello World"
fi

Diese if Anweisung wird nie erfüllt werden, das Problem sind die fehlenden Leerzeichen in der Bedingung.
Mit

SELECT=`date '+%w'`
if [[ "$SELECT" -eq 3 ]];
then
echo "hello World"
fi

funktioniert es wie gewünscht.