シェルスクリプトでif文を書く

すごく基礎的なことなんですが、毎回ググっているので自戒の念を込めて書きます。

if [ "hoge" == "hoge" ]; then
  echo true
else 
  echo false
fi

重要なのは[]の中は半角スペースを必ず開けること。

if ["hoge" == "hoge"]; then
  echo true
else 
  echo false
fi

これはエラーになる。毎回忘れる。
なんでエラーになるかを解説したとてもわかりやすい記事があったような記憶があるのですが、全く思い出せない。
誰か知ってたら教えて下さい。