[
não faz parte da instrução if
, é um comando que avalia expressões. O [ 0 ]
retorna true porque o formulário [ Expression ]
sempre é avaliado como 0. Se você tentar if [ 1 -eq 2 ]
, a instrução then
não será executada.
Verifique a página de manual para obter mais informações.