Sintaxe incorreta. Por favor, leia a documentação sobre o comando [
( help [
/ help test
)
Cada argumento deve ser um argumento próprio, ou seja, você deve usar espaços entre: [ "$num1" == "$num2" ]
. A razão pela qual você não vê um erro na primeira verificação é que ele tenta encontrar um comando chamado (com num1 = 3 e num2 = 4) [3==4]
, que não existe, portanto a expressão é avaliada como falsa. Na primeira verificação, você escreveu um <
, que é um operador de shell para redirecionamento de entrada . Ele tenta abrir o arquivo 4]
, que na maioria dos casos não existe.
No entanto, ao comparar números, você deve usar -eq
e semelhante, ==
é para comparação de string: [ 3 == 3.0 ]
é falso, [ 3 -eq 3.0 ]
é verdadeiro.