[ Voltar ] [ Índice ] [ Avançar ]

15. Comparando números ou strings ???

Dependendo da comparação que você fizer o shell considerará os valores como números ou strings. Oberve o exemplo a seguir:

$ x=05
$ y=5
$ [ "$x" -eq "$y" ]
$ echo $?
$ 0

No exemplo acima foi usada uma comparação númerica ( -eq ), então o shell entendeu que as variáveis "x" e "y" eram números. Como o número 05 é igual ao número 5, a comparação foi verdadeira e o código de retorno da foi zero.

Agora observe:

$ x=05
$ y=5
$ [ "$x" = "$y" ]
$ echo $?
$ 1

Desta vez foi usada uma comparação de strings ( = ), então o shell entendeu que as variáveis eram strings. Como a string "05" não é igual a string "5", a comparação foi falsa e o código de retorno da foi diferente de zero.


[ Voltar ] [ Índice ] [ Avançar ]