bash “if [ false ];” returns true instead of false — why?

Why does the following output True?

#!/bin/sh

if [ false ]; then
    echo "True"
else
    echo "False"
fi

This will always output True even though the condition would seem to indicate otherwise. If I remove the brackets [] then it works, but I do not understand why.

6 Answers
6

Leave a Comment