[
é uma função integrada binária ou bash.
if
aguarda a execução de algo que retornará 0 ou 1.
No seu caso, você tenta executar o programa: ["$WIDTH_LIMIT"
com o argumento -ge
e 2000]
porque seu shell usa espaço para separar o argumento e ["$WIDTH_LIMIT"
não é um comando binário ou bash apropriado.
Portanto, você deve sempre colocar espaço antes e depois de [
e ]
, porque eles são comandos regulares. Você não pode digitar echo$UTY
seu shell não o reconhecerá como um comando no PATH
Eu percebo que é fácil lembrar a sintaxe [
porque tem uma página man.
Tente man [
você verá que é apenas um arquivo executável ou um comando shell embutido (dependendo do seu sabor Unix / Linux) com argumento regular, ele precisa ter espaço depois dele.