bashでtrueとかfalseとか

bashでこんなん書いてみたんですが、

isAdmin=true
isUser=false

if [ $isAdmin ]; then
  echo "true"
fi

if [ $isUser ]; then
  echo "false"
fi

両方でてきます。

true
false
isAdmin=true
isUser=false

if  $isAdmin ; then
  echo "true"
fi

if  $isUser ; then
  echo "false"
fi

はうまくいきます。

true

bashの[]はtestの略らしく

if test $isAdmin ; then
  echo "true"
fi

if test $isUser ; then
  echo "false"
fi

と同じになってしまうんだとか。